scout-hub / simplify-vue3

a simplified version of vue3 implementation for study

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

simplify-vue3

a simplified version of vue3 implementation for study

测试

pnpm test

开发

pnpm dev

生产

pnpm build

目前实现的功能

  • reactivity
    • reactive/shallowReactive/isReactive/toReactive
    • readonly/shallowReadonly/isReadonly/toReadonly
    • isProxy
    • toRaw/markRaw
    • Object类型的响应式处理
    • Set、Map类型的响应式处理
    • 数组方法的响应式处理
    • computed及其相关属性
    • effect
    • ref/shallowRef/isRef/unref/toRef/toRefs/proxyRefs
    • 等等
  • runtime-core
    • createApp
    • defineAsyncComponent
    • Transition组件
    • Teleport组件
    • KeepAlive组件
    • slot插槽、组件类型、element类型、Text类型、Fragment类型、Comment类型节点的渲染更新卸载
    • customRender自定义渲染器
    • provide/inject
    • attrs/props初始化和更新、props类型校验
    • emit事件派发/emits选项校验
    • $el/$slots/$props/$attrs/$data
    • 部分指令(v-show,v-model)
    • 生命周期
    • nextTick
    • watchEffect/watch/watchSyncEffect/watchPostEffect
    • render函数
    • getCurrentInstance
    • 快速diff算法
    • patchFlag靶向更新文本节点、class属性、其他动态props、children节点
    • block树
    • 等等
  • runtime-dom
    • 属性绑定
    • 事件处理
  • compiler-core
    • 解析插值、文本、元素、组件
    • 插值、文本、元素、组件组合(支持嵌套)的template编译、转化、生成
    • 普通元素v-show、v-if/v-else-if/v-else、v-bind、v-on、v-for、v-model
    • template下多根标签节点渲染
    • patchFlag: 动态文本节点标记,动态class属性标记,动态props属性标记,指令标记(v-show)
    • block标记:v-if、v-for等等
  • shared
    • 辅助函数

About

a simplified version of vue3 implementation for study


Languages

Language:TypeScript 76.9%Language:HTML 22.0%Language:JavaScript 1.1%