技术文摘
Vue3 中 ref、isRef、toRef、toRefs、toRaw 的使用方法
2025-01-10 20:50:02 小编
Vue3 中 ref、isRef、toRef、toRefs、toRaw 的使用方法
在 Vue3 的响应式系统中,ref、isRef、toRef、toRefs、toRaw 这几个函数发挥着重要作用,理解它们的使用方法能让开发者更高效地进行开发。
ref
ref 用于创建一个响应式的数据引用。它接收一个初始值,可以是基本数据类型,也可以是对象。例如:
import { ref } from 'vue';
const count = ref(0);
const person = ref({ name: 'John', age: 30 });
在模板中使用时,无需额外操作即可显示其值;在 JavaScript 代码中,通过 .value 来访问和修改值,如 count.value++; person.value.age++;。
isRef
isRef 用于判断一个值是否为 ref 创建的引用。比如:
import { ref, isRef } from 'vue';
const num = ref(5);
const normalVar = 10;
console.log(isRef(num)); // true
console.log(isRef(normalVar)); // false
这在不确定某个值是否为 ref 时非常有用。
toRef
toRef 可以从一个响应式对象中创建一个新的 ref,这个 ref 会保持对原对象属性的响应式连接。例如:
import { ref, toRef } from 'vue';
const person = ref({ name: 'Alice', age: 25 });
const nameRef = toRef(person.value, 'name');
nameRef.value = 'Bob';
console.log(person.value.name); // 'Bob'
它常用于将对象中的某个属性单独提取出来,同时保持响应式。
toRefs
toRefs 则是将一个响应式对象的所有属性都转换为 ref。例如:
import { ref, toRefs } from 'vue';
const person = ref({ name: 'Eve', age: 35 });
const { name, age } = toRefs(person.value);
name.value = 'Grace';
console.log(person.value.name); // 'Grace'
这样可以在解构对象属性的保持属性的响应式。
toRaw
toRaw 用于获取一个由 reactive 或 ref 创建的响应式对象的原始对象。例如:
import { ref, toRaw } from 'vue';
const data = ref({ message: 'Hello' });
const rawData = toRaw(data.value);
rawData.message = 'World';
console.log(data.value.message); // 'World'
在某些需要直接操作原始对象的场景下,toRaw 就派上用场了。
ref、isRef、toRef、toRefs、toRaw 这几个函数在 Vue3 开发中各有其独特的用途,熟练掌握它们,能让我们更好地构建高效、灵活的响应式应用。
- JavaScript闭包中立即调用函数表达式(IIFE)的作用
- 移动端项目消除rem字体大小计算导致的CSS扭曲方法
- 冒泡排序打印数组时交换前后数组结构为何不同
- Echarts中实现发光3D图的方法
- JavaScript清除HTML标签属性的方法
- 原生JavaScript操作DOM实现HTML内容插入或删除的方法
- CSS布局中H标签溢出div背景原因探究
- Element-UI按钮点击后背景色残留问题的解决方法
- JavaScript 闭包中双括号()()是如何实现的
- 在 HTML 里怎样借助 PHP 条件判断来更改 input 元素的 readOnly 属性
- 表单输入框 readOnly 属性:代码实现控制可编辑性的方法
- CSS 实现逼真水球与波纹效果的方法
- Echarts 中借助 Echarts-gl 创建类似 3D 发光效果图表的方法
- Yii 2.0中Confirm弹框不显示的解决办法
- JavaScript 正则表达式怎样清除 HTML 标签的全部属性