Vue2和Vue3的区别
vue2 的双向数据绑定是利用 ES5 的一个API Object.definePropert() 对数据进行劫持,结合发布订阅模式的方式来实现的。
vue3 中使用了 ES6 的 Proxy API对数据代理。
相比 vue2.x ,使用 proxy 的优势如下:
在 vue2 中定义数据变量是 data(){} ,创建的方法要在 methods:{} 中。
而在 vue3 中直接在 setup(){} 中,在这里面定义的变量和方法因为最终要在模板中使用,所以最后都得 return 。
如:
除了这些钩子函数外, Vue3.x 还增加了 onRenderTracked 和 onRenderTriggered 函数。
这篇文章持续更新哟
vue2与vue3的区别
最近接触并了解了vue3,发现vue2的语法vue3能够继续使用,并没有任何影响,但是vue3还是和vue2有很大区别的
1.template标签
我们在使用vue2的时候,template标签只能写一个元素,所以我们要用一个大的盒子把里面的元素包起来,但是vue3中却解除了这个限制,也就是说,一个template标签中可以写多个标签
2.建立数据
在vue2中,我们在写需要的数据的时候需要在export default的里面添加data并把它return出来
而在vue3中,新增了个函数setup,
vue2中的声明周期都是写在data外面的,和data同级,但是vue3的生命周期是写在setup函数里面的
3.绑定事件
vue3中的绑定事件和建立数据差不多
vue2和vue3区别面试题
1、vue2相较vue3代码可读性比较差。vue2中选项API格式的代码的可读性较差,当需要实现的某一个功能涉及到多个属性的时候,就会出现在
props中接收参数
在data中定义变量
在watch中监听变化
在computed中定义需要使用到的计算属性
在methods中定义事件响应方法
对相同数据操作的代码会被分隔到各个属性内,不利于阅读代码。而vue3的组合式API对这一缺点进行了优化,使用组合式API能够将我们想要关联的代码放到一个组合里,增加了代码的可读性和可维护性。
2、vue2使用的API中使我们的代码大量的使用了this,不利于代码逻辑的复用。而vue3使用的组合式API在涉及到跨组件之间提取,复用逻辑时,会非常的灵活。且Vue3中的composition API对类型推导很友好,对于TS的兼容性更高。
3、Vue2需要对每个对象的每个属性进行遍历,当对象的属性还是对象时,需要递归监听,影响性能。对于已创建的实例不允许动态添加根级别的响应式属性,不具备监听数组的能力。而vue3可以监听原生数组并监听对象属性的动态添加和删除。