在vue3里一直说ref定义基本类型数据,而reactive是定义数组和对象的,但我看很多人定义数组也是用的ref,如:
import {ref} from 'vue'
const arr=ref(['one','two'])
所以我就不懂了,那数组到底应该用ref还是reactive???
在vue3里一直说ref定义基本类型数据,而reactive是定义数组和对象的,但我看很多人定义数组也是用的ref,如:
import {ref} from 'vue'
const arr=ref(['one','two'])
所以我就不懂了,那数组到底应该用ref还是reactive???
reactive定义的变量不能用等号重新赋值,否则会失去响应性,只能obj.xxx的方式一个个去赋值。
ref定义的变量可以用等号重新赋值,但是修改对象属性需要obj.value.xxx
另外vue3希望你按功能组合代码,
如果你一个功能用到的几个变量之间有关系,建议定义在同一个reactive中,便于管理。
5 回答1.3k 阅读
4 回答1.1k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
5 回答961 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
ref
比reactive
适用范围更广,reactive
只接受object,ref
啥都接受。不过ref
的底层也是调用reactive
的。所以现在一般在基础数据结构上,比如
number, string, boolean
等,用ref
,而且ref
可以被重新赋值,也就是 ref.value = new value.不会失去响应性。但
reactive
不能整体被重新赋值,只能对已初始化的数据结构进行内部修改,对于多个状态组合管理更为方便。如果你想详细了解,可以看看这个链接:https://9to5answer.com/ref-vs...