Vue 3中的ref
和reactive
是两个重要的响应式API。
ref
用于将基本数据类型转换为响应式数据,它返回一个包含value属性的响应式对象。ref
适合用于单个值的响应式需求,例如计数器、表单数据等。示例代码:
<template>
<div>
<p>Count: {{ count.value }}</p>
<button @click="count.value++">Increase</button>
</div>
</template>
<script>
import { reactive, ref } from 'vue';
export default {
setup() {
const count = ref(0); // 创建一个响应式的计数器变量
return {
count // 将计数器变量暴露出去
}
}
}
</script>
reactive
则用于将对象类型转换为响应式数据,可以实现对整个对象的监听和响应。reactive
适合用于包含多个属性的响应式需求,例如Vuex中的store状态管理模式,以及复杂的表单数据等。示例代码:
<template>
<div>
<p>Message: {{ state.message }}</p>
<p>Age: {{ state.age }}</p>
<button @click="updateData">Update Data</button>
</div>
</template>
<script>
import { reactive } from 'vue';
export default {
setup() {
const state = reactive({ // 创建一个响应式对象
message: 'Hello World',
age: 18,
});
const updateData = () => { // 更新响应式对象中的数据
state.message = 'Hello Vue 3';
state.age = 20;
}
return {
state, // 将响应式对象暴露出去
updateData,
}
}
}
</script>
总之,ref
和reactive
是Vue 3中非常重要的响应式API,使用它们可以更好地管理和更新应用程序中的数据。