vue2和vue3的区别

45 阅读1分钟
  • 1、用组合式API替换了选项是API
  • 2、一些细节使用上的改变
  • 1>组合式API没有this
  • 2>生命周期没有create,setup等同于create、卸载改成unmount
  • 3>vue3中v-if的优先级高于v-for
  • 4> 根实例的创建从 new app变成了createApp方法
  • 5>一些全局注册,比如mixin,注册全局组件,use改成了app实例调用,而不是vue类调用
  • 6>新增了传送门teleport组件
  • 7>template模版可以不包在一个根div里
  • 3、原理方面
  • 1>响应式原理改成了用proxy,解决了数组无法通过下标修改,无法监听到对象属性的新增和删除的问题,
  • 也提升了响应式的效率
  • 2>vue3并不是完全抛弃了defineProperty,通过reactive定义的响应式数据适用proxy包装出来,而ref还是用defineProperty去给一个空对象,定义了一个value属性来做的响应式;
  • 3>性能优化,增加了静态节点标记。会标记静态节点,不对静态节点进行比对,从而增加效率
  • 4>组合式api的写法下,源码改成了函数式编程,方便按需引入,因为tree-shaking功能必须配合按需引入写法,所以vue3更好地配合tree-shaking能让打包体积更小;
  • 4、进阶操作方面
  • 1>vue3不推荐适用mixin进行复用逻辑提取,而是推荐写成hook;
  • 2>v-model应用于组件时,监听的事件和传递的值改变
  • 3>ts更好的配合