监听watch中,ref()和reactive()响应式数据的区别

在 Vue 3 中,ref 和 reactive 是用于创建响应式数据的两种不同方式,它们在监听和响应属性更改的方式上有一些区别。

1.ref 的监听是浅层的:


2.使用 ref 创建的变量是一个简单的响应式引用,它包裹着基本类型的值或对象的引用。
3.当你通过 ref 创建的变量被用于模板或组件的渲染时,对该变量进行更改会触发视图的重新渲染,因为 Vue 会跟踪对 ref 引用的更改。
4.然而,当 ref 引用的是一个对象时,更改对象内部属性的值不会自动触发视图的重新渲染。你需要手动使用 .value 访问或修改对象属性的值。

5.如果想要监听对象属性,可以使用deep属性,也可以直接监听单个数据:

 ()=>state.value.age
 ()=>{
      console.log("age变化了")
        }


2.reactive 可以深层监听对象属性:


6.使用 reactive 可以对整个对象进行响应式包装,包括对象内部属性。
7.reactive 会递归地将对象的所有属性转换为响应式属性,使得当任何属性值发生变化时,都能触发相关的依赖更新。
8.对于嵌套对象或数组,它们的内部属性的修改也会被监听到,并触发相应的更新。

总结来说,ref 是一种简单的响应式引用,用于包装基本类型的值或对象的引用。它的监听是浅层的,意味着当对 ref 引用的对象的属性进行修改时,变化不会自动触发更新。相比之下,reactive 可以对整个对象进行深层监听,包括对象内部属性的修改。它适用于需要监听对象属性的场景

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值