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
- 辅助函数