vue3里ref与reactive的区别?

在vue3里一直说ref定义基本类型数据,而reactive是定义数组和对象的,但我看很多人定义数组也是用的ref,如:

import {ref} from 'vue'
const arr=ref(['one','two'])

所以我就不懂了,那数组到底应该用ref还是reactive???

阅读 3.5k
2 个回答

refreactive 适用范围更广,reactive 只接受object,ref 啥都接受。不过ref 的底层也是调用 reactive 的。

所以现在一般在基础数据结构上,比如 number, string, boolean 等,用ref,而且ref可以被重新赋值,也就是 ref.value = new value.不会失去响应性。

reactive不能整体被重新赋值,只能对已初始化的数据结构进行内部修改,对于多个状态组合管理更为方便。

如果你想详细了解,可以看看这个链接:https://9to5answer.com/ref-vs...

reactive定义的变量不能用等号重新赋值,否则会失去响应性,只能obj.xxx的方式一个个去赋值。
ref定义的变量可以用等号重新赋值,但是修改对象属性需要obj.value.xxx

另外vue3希望你按功能组合代码,
如果你一个功能用到的几个变量之间有关系,建议定义在同一个reactive中,便于管理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题