small-vue
TypeScript icon, indicating that this package has built-in type declarations

1.0.14 • Public • Published

small-vue

我们知道 vue 的源码非常庞大复杂,即使我们只学习其中部分核心包,其代码量依然惊人。因为这其中不仅有一些高级功能的实现,还有很多边缘情况的处理。这使我们阅读源码、理解源码变成一个很困难的过程,很容易被劝退。

因此我手写了一个简版的 vue3 源码:small-vue,只实现核心包中的核心逻辑,使代码尽量简单易理解。同时 small-vue 中的文件名、方法名都尽量与 vue3 源码中保持一致,有利于相互对照理解。

1. 实现功能

  • reactivity
    • [x] 支持 reactive,ref,computed 等响应式对象
    • [x] 支持 effect 函数监听响应式操作
    • [x] 基于 Jest 进行单元测试
  • runtime-core
    • [x] 支持元素类型、组件类型、虚拟类型、文本类型等多种虚拟节点
    • [x] 支持虚拟节点解析,初始化,更新等流程
    • [x] 支持双端 Diff 算法
    • [x] 支持 nextTick,queueJobs 等异步操作
    • [x] 支持 props、emit、provide、inject 等功能
    • [x] 支持插槽 Slots
    • [x] 支持 createRenderer,createApp 等入口函数
  • runtime-dom
    • [x] 支持 Dom 渲染器
  • compiler-core
    • [x] 支持 parse 操作,将 template 字符串转换成抽象语法树 AST
    • [x] 支持 transform 操作,遍历 AST 进行某些转换处理
    • [x] 支持 codegen 操作,将 AST 转成成 render 函数
  • vue
    • [x] 合并编译时和运行时,作为程序主入口
    • [x] 编写 examples 测试整个程序

Readme

Keywords

Package Sidebar

Install

npm i small-vue

Weekly Downloads

1

Version

1.0.14

License

MIT

Unpacked Size

201 kB

Total Files

9

Last publish

Collaborators

  • yuhuo