vue2和vue3的区别

1.vue2和vue3双向数据绑定原理发生了改变

vue2的双向数据绑定利用es6的一个apiobjectdefinepropert()对数据进行劫持,结合发布订阅者的方式来实现的

vue3中使用了es6的proxyapi对数据进行代理

想比与vue2,使用proxy的优势如下:

1.defineProperty只能监听某个属性,不能对全对象监听

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

3.可以监听数组,不用再去单独的对数组做特异性操作 vue3可以检测到数组内部数据的变化

2.vue3支持碎片化

就是说组件可以拥有多个根节点,而vue2只能有一个根节点

3.composition API

vue2和vue3的最大区别--vue2使用的选项型API,对比vue3组合式API

旧的选项型API在代码里分割了不同的属性,data,computed属性,methods等等,而vue3组合式api能让我们用方法来分割,相比于旧的API使用属性来分组,这样代码会更加简便和整洁

4.建立数据data

vue2把数据放入data属性中

在vue3,我就需要用一个新的setup方法,此方法在组件爱你初始化构造的时候触发

使用以下三点来建立反应性数据

1.从vue引入reactive

2.使用reactive()方法来声明我们的数据为响应式数据

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

5.生命周期钩子函数

选项式对比组合式

image.png

  •  setup() :开始创建组件之前,在beforeCreate和created之前执行。创建的是data和method
  • onBeforeMount() : 组件挂载到节点上之前执行的函数。
  • onMounted() : 组件挂载完成后执行的函数。
  • onBeforeUpdate(): 组件更新之前执行的函数。
  • onUpdated(): 组件更新完成之后执行的函数。
  • onBeforeUnmount(): 组件卸载之前执行的函数。
  • onUnmounted(): 组件卸载完成后执行的函数
     

6.父子传参不同

vue3父向子传值

7.png

 子向父传值

基本思路

  1. 父组件中给子组件标签通过@绑定事件
  2. 子组件内部通过 emit 方法触发事件
    1. const emit = defineEmits(['事件名1', '事件名2'])
    2. emit('事件名1', 值1)

8.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值