/mini-vue3

mini-vue for study

Primary LanguageTypeScript

mini-vue3

pnpm + monorepo + tsup + vitest 实现一个简单的 vue3

scripts

# 使用 pnpm -r,借助 pnpm 自动分析依赖关系,递归打包 packages
pnpm build

# 运行测试
pnpm test

reactivity

@mini-vue3/reactivity

  • reactive
  • ref
  • readonly
  • computed
  • track 依赖收集
  • trigger 依赖触发
  • isReactive
  • 嵌套 reactive
  • toRaw
  • effect.scheduler
  • effect.stop
  • isReadonly
  • isProxy
  • shallowReadonly
  • proxyRefs

runtime-core

@mini-vue3/runtime-core

  • 支持组件类型
  • 支持 element 类型
  • 初始化 props
  • setup 可获取 props 和 context
  • 支持 component emit
  • 支持 proxy
  • 可以在 render 函数中获取 setup 返回的对象
  • nextTick 的实现
  • 支持 getCurrentInstance
  • 支持 provide/inject
  • 支持最基础的 slots
  • 支持 Text 类型节点
  • 支持 $el api

shared

@mini-vue3/shared

  • extend
  • isObject
  • hasChanged

compiler-core

@mini-vue3/compiler-core

  • 解析插值
  • 解析 element
  • 解析 text

runtime-dom

@mini-vue3/runtime-dom

  • 支持 custom renderer