Skip to content

MMmaXingXing/mini-vue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini-vue

从零到一实现 mini-vue3。

reactivity

  • 支持 jest 环境搭建
  • 支持 effect & reactive 依赖搜集 & 依赖触发
  • 支持 effect.runner
  • 支持 effect.scheduler
  • 支持 effect.stop
  • 支持 eadonly
  • 支持 isReactive、isReadonly
  • 支持嵌套 reactive
  • 支持 shallowReadonly
  • 支持 isProxy
  • 支持 toRaw
  • 支持 ref
  • 支持 isRef、unRef
  • 支持 proxyRefs
  • 支持 computed 计算属性

runtime-core

  • 初始化 Component
  • 支持 rollup 打包
  • 初始化 element 主流程
  • 支持 组件代理对象
  • 支持 shapeFlags
  • 支持 注册事件功能
  • 实现 组件 props 逻辑
  • 实现 组件 emit 功能
  • 支持 slots 功能
  • 支持 Fragment 和 Text 类型节点
  • 支持 getCurrentInstance
  • 支持 provide/inject

runtime-dom

  • 自定义渲染器(createReader) custom renderer
  • 更新 element 流程搭建
  • 更新 element props
  • 更新 element children
  • 实现 双端对比 diff 算法
  • 实现 组件更新
  • 支持 nextTick

compiler-core

  • 实现 解析插值功能
  • 实现 解析 element 标签
  • 实现 解析 text 功能
  • 实现 解析三种联合类型
  • 实现 parse&有限状态机
  • 实现 transform
  • 实现 代码生成 string 类型
  • 实现 代码生成插值类型 cmproj
  • 实现 代码生成三种联合类型
  • 实现 编译 template 成 render 函数

build

yarn build

// 测试可以使用
yarn build --watch

run test

打开 example 中文件以 server 形式运行 index.html

About

最简易版本vue实现,fork崔大思路

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published