Skip to content

kongcodes/k-mini-vue3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini-vue3

本项目采用 TDD 驱动测试的开发方式,抽离出了 vue3 的核心逻辑,完成了一个最小 vue3 模型的实现。

使用了哪些技术栈

🚀 Jest

🚀 TypeScript

🚀 rollup

实现了什么功能

reactivity

✅ reactive 的实现

✅ ref 的实现

✅ readonly 的实现

✅ effect 的实现

✅ track 依赖收集

✅ trigger 触发依赖

✅ 支持 effect.scheduler

✅ 支持 effect.stop

✅ 支持 isReactive

✅ 支持嵌套 reactive

✅ 支持 isProxy

✅ 支持 isReadonly

✅ 支持 shallowReadonly

✅ 支持 isRef

✅ 支持 unRef

✅ 支持 proxyRefs

✅ computed 的实现

runtime-core

✅ 支持组件类型

✅ 支持 element 类型

✅ 初始化 props

✅ setup 可获取 props 和 context

✅ 支持 component emit

✅ 支持 proxy

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

✅ nextTick 的实现

✅ 支持 getCurrentInstance

✅ 支持 provide/inject

✅ 支持最基础的 slots

✅ 支持 Text 类型节点

✅ 支持 $el api

runtime-dom

✅ 支持 custom renderer

compiler-core

⬜ 解析插值

⬜ 解析 element

⬜ 解析 text

TODO

⬜ 组件代理对象/$el 抽离优化

⬜ custom renderer 示例:canvas 平台

⬜ patchChildren() 转换成 text 的优化

About

手写实现最简vue3模型

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published