vue2.0跟vue3.0的区别

1、性能优势:    

      1、virtual DOM 完全重写,mounting & patching 提速 100%;
  2、更多编译时 (compile-time)提醒以减少 runtime 开销;
  3、基于 Proxy 观察者机制以满足全语言覆盖以及更好的性能;
  4、放弃 Object.defineProperty ,使用更快的原生 Proxy;
  5、组件实例初始化速度提高 100%;
  6、提速一倍/内存使用降低一半;

2、生命周期对比:

        beforeCreate ===>setup()
        created =======>setup()
        beforeMount ===> onBeforeMount
        mounted=======> onMounted
        beforeUpdate ===> onBeforeUpdate
        updated =======> onUpdated
        beforeUnmount ==>onBeforeUnmount
        unmounted=====> onUnmounted

3、双向数据绑定对比:

        Object.defineProperty只能劫持对象的属性,因此我们需要对每个对象的每个属性进行遍历。Vue里,是通过递归以及遍历data对象来实现对数据的监控的,如果属性值也是对象那么需要深度遍历,显然如果能劫持一个完整的对象,不管是对操作性还是性能都会有一个很大的提升。

4、依赖注入:

        vue2.0可以说是跟props的传值差不多

        但是vue3.0需要在父组件中将数据用provide导出,后代组件中接收外城传递的数据,用inject接收父组件传递给后代组件接收到的数据。

这里需要注意的是,后代组件中如果需要修改数据事,那么这时需要做到谁的数据谁修改。

5、mixins语法:

        在vue2中一些可以服用的逻辑可以使用mixins封装,但是需要考虑到逻辑代码冲突的问题,vue3.0中组合API很好的解决了这个问题,就不推荐使用mixins语法了。

你可能感兴趣的:(前端,javascript,开发语言,vue.js)