[Medium] ref vs reactive
1. What are ref and reactive?
什么是 ref 和 reactive?
ref 和 reactive 是 Vue 3 Composition API 中用来创建响应式数据的两个核心 API。
ref
定义:ref 用来创建一个响应式的基本类型值或对象引用。
点此展开 ref 基本示例
<script setup>
import { ref } from 'vue';
// 基本类型
const count = ref(0);
const message = ref('Hello');
const isActive = ref(true);
// 对象(也可以使用 ref)
const user = ref({
name: 'John',
age: 30,
});
// 访问时需要使用 .value
console.log(count.value); // 0
count.value++; // 修改值
</script>
reactive
定义:reactive 用来创建一个响应式的对象(不能直接用于基本 类型)。
点此展开 reactive 基本示例
<script setup>
import { reactive } from 'vue';
// 只能用于对象
const state = reactive({
count: 0,
message: 'Hello',
user: {
name: 'John',
age: 30,
},
});
// 直接访问属性,不需要 .value
console.log(state.count); // 0
state.count++; // 修改值
</script>
2. ref vs reactive: Key Differences
ref 与 reactive 的主要差异
1. 适用类型
ref:可以用于任何类型
const count = ref(0); // ✅ 数字
const message = ref('Hello'); // ✅ 字符串
const isActive = ref(true); // ✅ 布尔值
const user = ref({ name: 'John' }); // ✅ 对象
const items = ref([1, 2, 3]); // ✅ 数组
reactive