新特性

  • 向后兼容
  • 新特性
  • breaking change非兼容性改变
  • 性能提升:重写了虚拟dom的实现,和tree-shaking的一些优化
    • 打包大小 -41%
    • 初次渲染快 +51%
    • 更新 +133%
    • 内存减少 -54%
  • typescript 支持

它的API分为选项式API和组合式API

Composition API

背景

  • 随着功能的增长,复杂组件代码难以维护
  • Vue2 api 通过一些列的 object 组织代码,缺少一种比较干净的在多个组件之间提取和复用的机制
  • 使用 mixin 解决复用的问题

    1. - 不知道mixin暴露的**对象中的数据是什么,方法是什么、返回是什么**。对象是有一定封闭性的。
    2. - mixin中同样会有 datacomputedmethods等,**逻辑依然会分散**
    3. - 命名冲突导致覆盖问题

    解决方法

  • 使用函数

    • 按逻辑组织代码,一个功能对应一个函数,代码组织更集中
    • 在普通情况下,函数使用的参数、返回值更易查找。
    • 在 ts 的加持下,函数参数和返回值的提示更友好。

      setup

      不用像 vue2 那样,写 data, computed, methods 等分散的逻辑。而将这些写在 setup 方法中。setup 在props, data, computed, methods, 生命周期函数运行之前运行的,不能获得 this。