Lucas Liao's Blog

Vue 3.0源码初窥

大概把vue 3.0的响应式原理撸了一遍,通过ES6的proxy,拦截原生默认行为,实现数据的改变,响应视图的变化,核心原理和vue 2.x版本大同小异。

至于优化,除了优化一些vue 2.x不合理的写法,感受最深的就是惰性求值,组件在初始化阶段,无论怎样,都会遍历data对象,对所有属性进行数据劫持,对于一些属性有时候往往是用到的,但这时候又进行了数据劫持,如果data对象结构非常复杂或庞大,
这时候明显是对性能是有影响的。而在vue 3.x, proxy巧妙地避免了这个问题。

fork了一份代码,加上自己的一些注释,可搜索// debug core看到,传送门:https://github.com/yiyu-liao/vue-next

具体的分析流程,等正式分布用上一段时间后再整理下吧~