Open
Description
- 项目结构改变,变为monorepo,模块拆分, 依赖更加明确。
- vue2静态类型定义从flow换为ts
- 性能优化:1. 移除冷门feature,比如filter, inline-template;2.引入 tree-shaking(基于ES6的import, export), 减少打包体积(?之前webpack编译不会处理吗)
- 数据劫持:Object.defineproperty如名称所言,处理的是对象的属性,如果需要监听深层对象,还需要需要递归遍历所有属性,Proxy劫持整个对象,虽然也不能深层监听,但是通过getter中递归可以实现使用到才进行监听。
- 编译优化: 2.0 diff的最小单位是组件,连非动态节点也会进行diff, 导致vnode性能跟组件大小相关,3.0生成block tree, 更新性能提升为只与动态节点相关。
- composition API: 2.0 组件逻辑全混在一起,解决方案一般是用mixins抽离,但是mixin会有命名冲突和来源不明的问题,composition可以将逻辑抽离,并且避免命名重复,类型推断也容易。