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,使用它们可以更好地管理和更新应用程序中的数据。