进入2020年,离vue3.0正式版发布的时间越来越近了。今天,借助尤雨溪大大提前发布的vue3.0源码,老K为大家整理一下vue3.0和vue2.0的区别。
vue3的变化可以总结为以下几点:
- 更小
- 更快
- 加强typescript支持
- Api一致性
- 提高可维护能力
- 开放更多底层功能
其中前三点是最主要的变化。
更小:
vue2采用面向对象编程的思想,vue3则采用函数式编程的思想。
vue2源码中代码是这样组织的:
function vue(){...} vue.prototype.init = ...
vue3源码中是这样组织的:
//监听方法:function watch(){...} //渲染方法:function render(){...}
原因:充分利用函数式编程组合大于继承的优势,采用函数式编程更利于逻辑功能的复用,webpack打包时更有利于tree-shaking,更利于代码的压缩,更利于返回值类型校验,压缩后的文件体积更小。
更快: