Skip to content

Vue 3.0 #5

Open
Open
@hex11o

Description

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions