vue3 的ref和reactive的区别?

ref和reactive都是创建响应式数据的方式,它们的数据类型,使用场景以及性能有所不同,如:

1数据类型:

ref:主要用于创建单个变量的响应式引用,无论数据类型是基本数据类型还是引用数据类型,ref都能吧它封装一个响应式实体,它返回的是一个对象,如果访问需要使用value来读取对象中的数据

reactive:主要适用于复杂数据类型,比如数组对象,它返回的是proxy对象,可以直接访问

2使用场景:

ref:需要创建一个响应式的基本数据类型时使用,如简单的计数器或标志位

reactive:需要创建一个响应式的复杂对象或者数组时使用,如用户信息管理或嵌套数据结构

3性能:

ref:对基本数据类型,ref通常具有更高的性能,因为它减少了,proxy的使用,简化了应用系统的恶实现

reactive:对复杂的数据结构reactive通过使用proxy直接操作对象属性,提供了更好的灵活性能和响应式追踪机制

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

// 使用ref创建响应式基本数据类型
let count = ref(0);
console.log(count.value); // 输出0
count.value++; // 增加计数器

// 使用reactive创建响应式复杂对象
let user = reactive({
  name: 'Alice',
  age: 30,
});
console.log(user.name); // 输出Alice
user.name = 'Bob'; // 修改属性值
相关推荐
慧一居士28 分钟前
flex 布局完整功能介绍和示例演示
前端
DoraBigHead30 分钟前
小哆啦解题记——两数失踪事件
前端·算法·面试
一斤代码6 小时前
vue3 下载图片(标签内容可转图)
前端·javascript·vue
中微子6 小时前
React Router 源码深度剖析解决面试中的深层次问题
前端·react.js
光影少年6 小时前
从前端转go开发的学习路线
前端·学习·golang
中微子7 小时前
React Router 面试指南:从基础到实战
前端·react.js·前端框架
3Katrina7 小时前
深入理解 useLayoutEffect:解决 UI "闪烁"问题的利器
前端·javascript·面试
前端_学习之路8 小时前
React--Fiber 架构
前端·react.js·架构
coderlin_8 小时前
BI布局拖拽 (1) 深入react-gird-layout源码
android·javascript·react.js
伍哥的传说8 小时前
React 实现五子棋人机对战小游戏
前端·javascript·react.js·前端框架·node.js·ecmascript·js