vue2与vue3中的watch和computed区别

Vue.js中的watch和computed都是响应式数据的使用方式,但在Vue 2和Vue 3中它们有一些关键区别:

  1. 响应性核心实现不同:Vue 2中的响应性系统基于Object.defineProperty,而Vue 3则使用了ES6 Proxy代理对象作为响应性系统的核心实现。这意味着在Vue 3中,可以更轻松地跟踪对象属性的添加/删除,以及数组元素的变化。

  2. computed返回值缓存策略:在Vue 2中,computed默认会对计算出的值进行缓存,只有依赖的数据发生变化时才会重新计算;而在Vue 3中,默认情况下,computed返回的值也会进行缓存,但是可以通过设置computed选项的“cache”属性为false来禁用缓存,或者使用新的“ref”和“reactive”API手动控制缓存行为。

  3. watch的写法差异:在Vue 2中,watch可以直接监听一个表达式或一个函数,并且提供了deep选项来深度监听对象内部属性的变化;而在Vue 3中,watch需要使用特定的监听选项函数来监听响应式数据的变化,例如使用“immediate”选项来立即执行watch回调函数,或使用“flush”选项来设置watch回调函数在视图更新前或后执行。

总之,在Vue 3中,由于响应性核心实现的变化和新的API的引入,computed和watch的使用方式都有了一些微调,但它们的基本功能和作用并没有改变。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值