/mini-vue3

Primary LanguageJavaScript

mini-vue3

reactivity

  1. ✅ setup 环境-集成 jest 做单元测试-集成 ts

  2. ✅ 实现 effect & reactive & 依赖收集 & 触发依赖

  3. ✅ 实现 effect 返回 runner

  4. ✅ 实现 effect 的 scheduler 功能

  5. ✅ 实现 effect 的 stop 功能

  6. ✅ 实现 readonly 功能

  7. ✅ 实现 isReactive 和 isReadonly

  8. ✅ 优化 stop 功能

  9. ✅ 实现 reactive 和 readonly 嵌套对象转换功能

  10. ✅ 实现 shallowReadonly 功能

  11. ✅ 实现 isProxy 功能

  12. ✅ 实现 ref 功能

  13. ✅ 实现 isRef 和 unRef 功能

  14. ✅ 实现 proxyRefs 功能

  15. ✅ 实现 computed 计算属性功能

runtime-core 初始化

  1. ✅ 实现初始化 component 主流程

  2. ✅ 使用 rollup 打包库

  3. ✅ 实现初始化 element 主流程

  4. ✅ 实现组件代理对象

  5. ✅ 实现 shapeFlags

  6. ✅ 实现注册事件功能

  7. ✅ 实现组件 props 功能

  8. ✅ 实现组件 emit 功能

  9. ✅ 实现组件 slots 功能

  10. ✅ 实现 Fragment 和 Text 类型节点

  11. ✅ 实现 getCurrentInstance

  12. ✅ 实现依赖注入功能(provide/inject)

  13. ✅ 实现自定义渲染器 custom renderer

runtime-core 更新

  1. ✅ 更新 element 流程搭建

  2. ✅ 更新 element 的 props

  3. ✅ 更新 element 的 children

  4. ✅ 更新 element 的 children - 双端对比 diff 算法(1)

  5. ✅ 更新 element 的 children - 双端对比 diff 算法 (2)

  6. ✅ 更新 element 的 children - 双端对比 diff 算法 (3)

  7. ✅ 学习尤大解决 bug 的处理方式

  8. ✅ 实现组件更新功能

  9. ✅ 实现 nextTick 功能

compiler-core

  1. ✅ 编译模块概述

  2. ✅ 实现解析插值功能

  3. ✅ 实现解析 element 标签

  4. ✅ 实现解析 text 功能

  5. ✅ 实现解析三种联合类型 template

  6. ✅ parse 的实现原理&有限状态机

  7. ✅ 实现 transform 功能

  8. ✅ 实现代码生成 string 类型

  9. ✅ 实现代码生成插值类型

  10. ✅ 实现代码生成三种联合类型

  11. ✅ 实现编译 template 成 render 函数

  12. ✅ 实现 monorepo