ue3和Vue2的不同点

195 阅读2分钟

Vue2和vue3的区别

1.生命周期钩子不同

setup开始创建组件

onbeforeMount组件挂载页面之前执行

onmunted组件挂载到页面之后执行

onbeforeUpdate组件更新之前

onupdated组件更新之后

注意:vue3.x生命周期在调用前需要先引入,除了上诉的钩子函数外,还增加了onRendertraced和onrendertriggered

2.数据双向绑定原理不同

vue3中使用es6的proxy api对数据代理

vue3提供的proxy api的优势在于

1.definepropety只能监听某个属性。不能对全对象监听

2.可以省去for..in,闭包等内容来 提升效率(直接绑定整个对象即可)

3.可以监听数组,不在单独对数组做特异性处理,可以检测到数组内部数据的变化

3.定义变量和方法不同

vue3中使用一个新的setup方法

vue3提供的setup方法在组件初始化构造的时候触发,使用一下三个步骤建立反应性数据

1.从vue引入reactive

2.使用eactive方法来声明数据为响应式数据

3.使用setup方法返回响应式数据,从而template可以获取这些响应式数据

4.指令和插槽的使用不同

将v-if当做v-for的一个判断语句。不会相互冲突。

移除keycode作为v-on的修饰符,不支持config.keycdes

移除v-on.natives修饰符

移除过滤器fiter

不允许直接使用slot,正确格式是v-slot

5.api类型不同

vue3组合型api(使用方法进行分割,显得简便)

vue2选项型api(在代码分割不同的属性)

6.是否支持碎片

vue2不支持

vue3可以拥有多个根节点

7.父子之间传参不同

vue2中父传子:子组件通过prop接收

父传子:子组件中通过$emit向父组件触发一个监听方法,传递一个参数

vue3使用 setup中的第二个参数content对象中有emit,只需要在setup接收第二个参数中使用分解对象法取出emit就可以在setup方法中随意使用了

8.main.js文件不同

vue2使用圆形的总是进行操作,引进的是构造函数,vue3需要结构的形式进行操作,引入的是工厂函数,vue3中的app组件中可以没用跟标签