Vue3 中的 ref 和 reactive,到底该怎么选?

Vue3 中的 ref 和 reactive,到底该怎么选?

Vue3 的 Composition API 引入了两个核心概念:ref 和 reactive,它们是响应式的基石。但不少人搞不清楚两者什么时候该用谁,写着写着还会报错或数据不更新。

别急,这一篇文章帮你分清它们的本质差异、使用场景和最佳实践

🧠一句话区别:

  • ref 用于基本类型(如数字、字符串),或者想包装成响应式的单个变量
  • reactive 用于对象或数组,让整个结构响应式。

🧪 示例对比:

js

复制编辑

// 引入响应式 API

import { ref, reactive } from 'vue'

// 基本类型用 ref

const count = ref(0)

count.value++ // 访问和修改都要 .value

// 复杂对象用 reactive

const user = reactive({

name: 'Tom',

age: 18

})

user.age++ // 直接访问,无需 .value

❗你可能遇到的问题:

  1. 👇这段代码会出错或不起作用:

js

复制编辑

const obj = ref({ name: 'Vue' })

obj.name = 'React' // ❌ 错了!

因为 ref 包装后,正确写法是:

js

复制编辑

jrhz.info

obj.value.name = 'React' // ✅ 正确

  1. ref 里的对象取值太麻烦?可以用 toRefs 或 reactive 代替:

js

复制编辑

const obj = reactive({ name: 'A', age: 20 })

const { name, age } = toRefs(obj)

🎯使用建议总结:

场景推荐使用基础数据(数字、布尔、字符串)ref表单数据、用户信息(对象)reactive单个响应式值包装ref多个值封装且需解构reactive + toRefs

📌 常见辅助函数:

函数用途ref()创建响应式变量(基础类型)reactive()创建响应式对象(深层响应)toRefs()把 reactive 对象转换成 reftoRaw()获取响应式对象的原始数据

引用地址:https://blog.csdn.net/qqqdqd/article/details/149209167

特别声明:[Vue3 中的 ref 和 reactive,到底该怎么选?] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

腹部经常疼而且经常放屁(腹部经常性疼痛)

腹部经常疼痛伴随频繁排气可能与胃肠功能紊乱、饮食不当或消化系统疾病有关。常见原因包括消化不良、肠易激综合征、乳糖不耐受、肠道菌群失衡和慢性胃炎等。建议调整饮食结构,必要时就医排查器质性病变。 进食过快或摄入过多产气食物可能导致胃排空延迟

腹部经常疼而且经常放屁(腹部经常性疼痛)

乙烷运输“巨无霸”首航宁波

本报讯 (记者 李华 通讯员 许桃) 目前国内容量最大、技术最先进的乙烷运输船“塞拉”轮日前在宁波边检等多部门协同保障下,顺利完成装卸作业,驶离宁波舟山港大榭港区。该轮本次承运进口乙烷约10万立方米,将用于保…

乙烷运输“巨无霸”首航宁波

真正能代表中国男人形象的5位男星,长得帅气质硬没有一个是娘炮(真正能代表中国的文化)

接着是冯喆,这位温文尔雅的大『明星』️不但学识渊博,在银幕上也展现了中国男性♂️传统的内敛气质。还有周里京的传奇一生,从进入话剧院到后来成为一线影星,他用自己的人生诠释了热血二字。 看完这些老牌影星的故事,你是不是…

真正能代表中国男人形象的5位男星,长得帅气质硬没有一个是娘炮(真正能代表中国的文化)

陳家樂宿醉去TVB《逆緣》試鏡,獲珍姐欣賞:攞膠袋係咁嘔(陈家乐ins)

时间倒回2018年,这个背着呕吐物参加《逆缘》试镜的醉汉,正用充血的眼睛向TVB高层证明自己的专业——就像七年前他在《DIVA》片场苦练溜冰摔得满身淤青那样,总在狼狈中绽放光芒。"夜幕降临时,这个38岁的&quot

陳家樂宿醉去TVB《<strong>逆緣</strong>》試鏡,獲珍姐欣賞:攞膠袋係咁嘔(陈家乐ins)

淘宝直播怎么加入?新手必看入局攻略!(淘宝直播怎么加入机构)

想在淘宝开直播却不知从哪开始?本文手把手教你如何加入淘宝直播、开通权限、设置『直播间』、玩转互动玩法,还附上新手避坑指南和实用建议。无论是商家自播、达人种草还是素人试水,都能找到适合自己的入门路径,轻松开启你的直播之旅!

淘宝直播怎么加入?新手必看入局攻略!(淘宝直播怎么加入机构)