vue/vue3,ref和reactive声明变量有什么区别,分别怎么用
适用的变量类型不同
- 对于原始类型,即非对象类型,只能用ref
- 对于对象类型,既可以用ref,也可以用reactive
在js中获取值的方式不同
- 在js中,获取ref声明的变量值,需要通过 .value 获取
- 获取react声明的变量值,直接获取即可
侦听深度不同
- 如果侦听ref声明的对象类型变量,当变量的属性发生变化时,不触发侦听,需要设置深度侦听{deep:true}
- 如果侦听reactive声明的变量,当变量的属性发生变化时,触发侦听,无需设置深度侦听
响应性区别
- ref声明的对象类型变量,可以通过 .value直接用新的对象赋值,改变变量的值,变量响应性存在
- 给reactive包裹的对象类型变量重新赋值,变量响应性消失,该方法不可取。
- reactive包裹的对象可以通过Vue.set()方法来重新赋值
- reactive包裹的对象给其属性赋值,是不会影响响应性的
本文比较了Vue3中ref和reactive声明变量的区别,包括适用的变量类型、获取值的方法、侦听深度以及响应性。ref主要适用于非对象,reactive用于对象,后者自动侦听深度变化并保持响应性。

1874

被折叠的 条评论
为什么被折叠?



