mini-vue最简 Vue3 模型

联合创作 · 2023-09-20 01:14

mini-vue 实现了一个最简化的 vue3 模型,可用于深入学习 vue3, 更轻松地理解 vue3 的核心逻辑。


vue3 这种工业级别的库,源码中很多逻辑是用于处理边缘情况或者是兼容处理逻辑,不利于初学者学习源码。而 mini-vue 库把 vue3 源码中最核心的逻辑剥离出来,只留下核心逻辑,可帮助开发者更好地理解 Vue3 的核心逻辑。


实现过程


mini-vue 基于 vue3 的功能点,一点一点地拆分出来。代码命名保持和源码中的一致,方便大家通过命名去源码中查找逻辑。


Tasking


runtime-core



  • 支持组件类型

  • 支持 element 类型

  • 初始化 props

  • setup 可获取 props 和 context

  • 支持 component emit

  • 支持 proxy

  • 可以在 render 函数中获取 setup 返回的对象

  • nextTick 的实现

  • 支持 getCurrentInstance

  • 支持 provide/inject

  • 支持最基础的 slots

  • 支持 Text 类型节点

  • 支持 $el api


reactivity


目标是用自己的 reactivity 支持现有的 demo 运行



  • reactive 的实现

  • ref 的实现

  • readonly 的实现

  • computed 的实现

  • track 依赖收集

  • trigger 触发依赖

  • 支持 isReactive

  • 支持嵌套 reactive

  • 支持 toRaw

  • 支持 effect.scheduler

  • 支持 effect.stop

  • 支持 isReadonly

  • 支持 isProxy

  • 支持 shallowReadonly

  • 支持 proxyRefs


compiler-core



  • 解析插值

  • 解析 element

  • 解析 text


runtime-dom



  • 支持 custom renderer


初始化


流程图


浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报