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,到底该怎么选?] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

出口东非南非地区三相400V稳压器 东莞卓尔凡电力稳压器生产工厂 5000KVA(南非 出口)

南非:国家电网(Eskom)限电导致工业电压波动±25%,仅2023年因此造成的制造业损失超$12亿; 东非:肯尼亚、坦桑尼亚等国电网谐波畸变率(THD)普遍超15%,精密机床、自动化产线故障率飙升40%…

出口东非南非地区三相400V稳压器 东莞卓尔凡电力稳压器生产工厂 5000KVA(南非 出口)

朋友的妻子2》:一部关于信任、友谊与婚姻的深度对话(《朋友的妻子2》完整版在线观看)

在当代韩国电影的多元图景中,有一类作品专注于探讨人际关系中的复杂情感与道德困境,《朋友的妻子2》正是这样一部作品。通过主角🎭️们的选择与反思,影片引导观众思考:在传统伦理观念与现代个人主义之间,当代人该如何建立健…

《<strong>朋友的妻子2</strong>》:一部关于信任、友谊与婚姻的深度对话(《<strong>朋友的妻子2</strong>》完整版在线观看)

工业和信息化部推动构建国家算力互联互通节点体系(工业和信息化部招聘)

工业和信息化部今天发布《关于开展国家算力互联互通节点建设工作的通知》(以下简称《通知》),面向国家枢纽节点、重大战略区域、重点行业建设算力互联互通节点,构建国家算力互联互通节点体系。 《通知》提出,国家算力互…

工业和信息化部推动构建国家算力互联互通节点体系(工业和信息化部招聘)

现货白银重新站上75美元💵 日内涨近6%(现货白银实时资讯)

北京时间2月6日下午,现货白银持续反弹上破75美元💵盎司,日内涨近6%,较日低反弹11美元💵

现货白银重新站上75美元💵 日内涨近6%(现货白银实时资讯)

A股全市场超3800个股上涨 三大指数全线翻红(a股市场股票总数)

2月6日早盘,A股低开后探底回升。截至中午收盘,三大指数全线翻红,沪指报4080.31点,涨0.11%,深成指报14043.17点,涨0.65%,创业板指报3281.45点,涨0.65%。全市超3800股上涨

A股全市场超3800个股上涨 三大指数全线翻红(a股市场股票总数)