该项目为自己手写的简易 Vue 框架,旨在研究学习 Vue 源码的基础上进行实践。
- 响应式机制
- getter/setter 转换;
- 访问数据时进行依赖收集
- 修改数据时通知依赖更新;
- 模板编译
- 通过遍历 DOM 节点,实现对插值表达式、指令、事件等处理;
- 如果要实现 Vue 单文件组件的效果,则需要构建 AST (现在实际上编译任务是交给浏览器了),还需要编写一个 vue-loader,因此暂时先不做;
- 插值表达式现在只支持渲染文本,Vue 的插值表达式支持 JS 表达式,这个后期加上;
- 指令支持
v-text
、v-html
、v-model
; - 事件是通过
addEventListener
实现绑定的,在 Vue 组件卸载后,事件也会自动解绑,因为现在没有实现生命周期,所以这个暂时做不了;
项目模块化机制采用 ES6 Module,使用 Webpack 打包编译,并且已经配置了 devServer ,支持热更新,只需要一个命令即可启动:
$ npm run serve