Vue 3 中的 ref 和 reactive

🚀 Vue 3 中的refreactive :一篇搞懂! 🚀

在 Vue 3 中,refreactive 是创建响应式数据的两种主要方式。它们有什么区别?该如何选择?今天我们就来彻底搞懂这两个 API!👇


1. ref 是什么?

ref 是 Vue 3 提供的一个函数,用于创建一个 响应式引用

1.1 特点

  • 可以包装任意类型的值(包括基本类型和对象)。
  • 通过 .value 访问和修改值。
  • 适合用于 单个值 的响应式数据。

1.2 示例

csharp 复制代码
import { ref } from 'vue';

const count = ref(0); // 创建一个响应式引用

console.log(count.value); // 访问值
count.value++; // 修改值

2. reactive 是什么?

reactive 是 Vue 3 提供的一个函数,用于创建一个 响应式对象

2.1 特点

  • 只能包装对象(包括数组和复杂对象)。
  • 直接访问和修改对象的属性。
  • 适合用于 复杂对象 的响应式数据。

2.2 示例

javascript 复制代码
import { reactive } from 'vue';

const state = reactive({
  count: 0,
  name: 'Alice',
});

console.log(state.count); // 访问属性
state.count++; // 修改属性

3. ref reactive的区别

特性 ref reactive
包装类型 任意类型(基本类型、对象) 只能包装对象
访问方式 通过 .value访问 直接访问属性
适用场景 单个值(如数字、字符串) 复杂对象(如表单、状态管理)
性能 适合简单数据 适合复杂数据

4. 如何选择 ref reactive

4.1 使用 ref 的场景

  • 单个值(如计数器、开关状态)。
  • 需要明确区分响应式数据和非响应式数据。

示例

ini 复制代码
const count = ref(0);
const isActive = ref(false);

4.2 使用 reactive 的场景

  • 复杂对象(如表单数据、状态管理)。
  • 需要直接访问和修改对象的属性。

示例

php 复制代码
const form = reactive({
  username: '',
  password: '',
});

const user = reactive({
  name: 'Alice',
  age: 25,
});

5. ref reactive 的互相转换

5.1 ref reactive

可以将 ref 包装的对象传递给 reactive

示例

ini 复制代码
const count = ref(0);
const state = reactive({ count });

console.log(state.count); // 访问值
state.count++; // 修改值

5.2 reactive ref

可以使用 toRefsreactive 对象的属性转换为 ref

示例

scss 复制代码
const state = reactive({ count: 0 });
const { count } = toRefs(state);

console.log(count.value); // 访问值
count.value++; // 修改值

6. 总结

  • ref:适合用于单个值的响应式数据,通过 .value 访问和修改。
  • reactive:适合用于复杂对象的响应式数据,直接访问和修改属性。
  • 选择依据:根据数据的复杂度和使用场景选择合适的 API。

如果你对 refreactive 还有疑问,欢迎在评论区讨论!💬

相关推荐
uzong3 小时前
一个好的面试官,应该让候选人感到被尊重
面试
咩咩啃树皮5 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny5 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹5 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
阳光是sunny5 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
小林ixn6 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker6 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
এ慕ོ冬℘゜7 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
触底反弹7 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
武子康7 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端