vue 中 ref 与 reactive区别和使用场景


前言

ref和reactive都是Vue.js中用于响应式数据处理的工具函数。

ref是Vue.js 3中引入的新功能,用于创建响应式的引用。它返回一个对象,该对象的属性可以响应数据的变化。使用ref创建的引用可以作为函数参数传递,并且可以被解构。


一、ref

1、基本用法:

ref 主要用于创建对单个数据的响应式引用,通常是基本数据类型。

import { ref } from 'vue';

const count = ref(0);

2、获取和修改值:

使用 .value 属性来获取值。

console.log(count.value); // 获取值

直接修改 ref 的 .value 属性来更新值。

count.value++;

3、特性和限制:

  • ref 可以包装任何值,包括基本类型和对象。
  • 适用于单一的、简单的值。
  • .value 的使用方式在代码中显得很明显

二、reactive

1、基本用法:

reactive 用于创建一个包装对象的响应式代理。

import { reactive } from 'vue';

const state = reactive({ count: 0 });

2、获取和修改值:

直接访问和修改对象的属性。

console.log(state.count); // 获取值

直接修改 ref 的 .value 属性来更新值。

state.count++;

3、特性和限制:

  • reactive 可以包装对象,使对象的所有属性都变得响应式。
  • 适用于复杂的、有多个属性的对象。
  • 修改对象的属性时,不需要额外的.value。

4、嵌套响应式:

reactive 也会使嵌套的对象和数组变得响应式

const nestedState = reactive({ data: { count: 0 } });
console.log(nestedState.data.count); // 获取值
nestedState.data.count++;

总结

对于基本类型,ref 通常更直接,而对于对象,reactive 更适合。
总体而言,ref 主要用于单一的、简单的值,而 reactive 适用于复杂的、有嵌套结构的对象。在实际项目中,你可能会同时使用它们,根据不同的场景选择合适的响应式 API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YOIO.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值