赞
踩
今天在写前端, 用的是Vue3, 其实之前也有写过一些前端, 但是涉及不深, 差不多是基础的水平, 然后现在想跟进下Vue3, 就有点吃力得紧, 就单单一个变量的引用, 就折腾得不轻,调试的时候, 取值都是各种undefined, 然后就特地找了下相关的资料, 这才明白ref和reactive的区别。
在 Vue 3 中,ref
和 reactive
是用于创建响应式数据的两个核心 API。它们的主要区别在于处理数据的方式和适用场景。
ref
ref
用于定义一个响应式的数据对象。.value
属性。ref
时,Vue 会自动解构 .value
,因此不需要显式地写 .value
。ref
时,必须使用 .value
来访问或修改其值。reactive
reactive
用于创建一个响应式的对象或数组。.value
。reactive
只能处理对象和数组,对于基本数据类型(String、Number、Boolean 等)不适用。.value
取值ref
时,需要使用 .value
。ref
作为响应式对象的属性时,在 JavaScript 中操作该属性时也需要 .value
。ref
的 .value
,因此可以直接使用 ref
而不需要 .value
。reactive
创建的响应式对象,无论是在模板中还是在 JavaScript 中,都可以直接访问其属性,不需要 .value
。import { ref, reactive } from 'vue';
const count = ref(0); // 创建一个响应式的 ref 对象
const state = reactive({ count: 1 }); // 创建一个响应式的 reactive 对象
// 在 JavaScript 中操作 ref 时需要使用 .value
console.log(count.value); // 0
count.value++;
// 在 JavaScript 中操作 reactive 对象时,直接访问属性
console.log(state.count); // 1
state.count++;
// 在模板中使用 ref 和 reactive
<template>
<div>{{ count }}</div> <!-- 自动解构 .value -->
<div>{{ state.count }}</div> <!-- 直接访问属性 -->
</template>
在选择使用 ref
还是 reactive
时,可以根据你的具体需求来决定。如果你需要处理基本数据类型,或者希望明确地管理单个值的响应性,那么 ref
是更好的选择。如果你正在处理一个对象或数组,并且希望整个对象或数组都是响应式的,那么 reactive
会更加适合。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。