项目简介
本项目实现了最简的 Vue3 模型,主要用于深入学习 Vue3。由于 Vue3 作为工业级库,其源码存在大量处理边缘情况和兼容逻辑的代码,不利于学习者掌握核心内容,因此本项目将 Vue3 源码中的核心逻辑剥离,帮助开发者更轻松地理解 Vue3 的核心逻辑。
项目的主要特性和功能
runtime-core
- 支持组件类型、element 类型和 Text 类型节点。
- 可初始化 props,能在 setup 中获取 props 和 context。
- 支持 component emit、proxy 和最基础的 slots。
- 可在 render 函数中获取 setup 返回的对象。
- 实现了 nextTick、getCurrentInstance 和 provide/inject 功能。
- 支持 $el api 和 watchEffect。
reactivity
- 实现了 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。
runtime-test
支持测试 runtime-core 的逻辑。
infrastructure
支持使用 pnpm 的 monorepo。
安装使用步骤
假设用户已经下载了本项目的源码文件,按以下步骤操作:
1. 打开终端,进入项目目录。
2. 执行构建命令:pnpm build
。
3. 通过服务器打开 packages/vue/example/*
下的 index.html
文件查看示例,推荐使用 Live Server。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】