• vue3使用ref和reactive


    目录​​​​​​​

    vue3使用ref和reactive的方法

    1.ref

    2.reactive

    Vue 3 使用 ref 和 reactive 创建响应式对象的完整示例:

    1.示例

    2.示例说明

    vue3使用ref和reactive的方法

    Vue 3引入了两个新的API,refreactive,用于创建响应式对象。这两个方法都位于Vue.prototype上,因此可以在组件实例中直接使用。

    1.ref

    ref函数用于创建一个响应式引用对象。这个函数可以接受一个普通的变量或对象作为参数,并返回一个响应式引用对象。要访问这个引用的值,需要使用.value属性。

    例如:

    1. const count = ref(0);
    2. console.log(count.value); // 0
    3. count.value++; // 响应式更新
    4. console.log(count.value); // 1

    在上面的例子中,我们使用ref函数创建了一个响应式引用对象,并将其初始值设置为0。然后,我们可以通过.value属性来访问和修改这个引用的值。当修改这个值时,Vue会自动更新相关的视图。

    2.reactive

    reactive函数用于创建一个响应式对象。这个函数可以接受一个普通的对象作为参数,并返回一个响应式代理对象。这个代理对象会拦截所有的属性访问和修改操作,并自动更新相关的视图。

    例如:

    1. const state = reactive({ count: 0 });
    2. console.log(state.count); // 0
    3. state.count++; // 响应式更新
    4. console.log(state.count); // 1

    在上面的例子中,我们使用reactive函数创建了一个响应式对象,并将其初始值设置为一个包含count属性的对象。然后,我们可以通过直接访问和修改这个对象的属性来触发响应式更新。与ref不同的是,我们不需要使用.value属性来访问和修改这个对象的属性。

    Vue 3 使用 refreactive 创建响应式对象的完整示例:

    1.示例
    1. <template>
    2. <div>
    3. <p>{{ count }}</p>
    4. <button @click="increment">Increment</button>
    5. </div>
    6. </template>
    7. <script>
    8. import { ref, reactive } from 'vue';
    9. export default {
    10. setup() {
    11. // 使用 ref 创建响应式引用对象
    12. const count = ref(1);
    13. // 使用 reactive 创建响应式对象
    14. const state = reactive({
    15. count: 0,
    16. });
    17. // 使用 increment 方法修改引用对象的值和响应式对象的属性值
    18. const increment = () => {
    19. count.value++; // 修改引用对象的值
    20. state.count++; // 修改响应式对象的属性值
    21. };
    22. return {
    23. count,
    24. state,
    25. increment,
    26. };
    27. },
    28. };
    29. </script>

    2.示例说明

    在上面的示例中,我们使用 ref 创建了一个名为 count 的响应式引用对象,初始值为 1。我们还使用 reactive 创建了一个名为 state 的响应式对象,其中包含一个名为 count 的属性,初始值为 0。在 increment 方法中,我们通过调用 count.value++state.count++ 来修改引用对象的值和响应式对象的属性值。由于这些变量都是响应式的,因此当它们的值发生变化时,相关的视图也会自动更新。

    Vue 3 使用 refreactive 创建响应式对象在