vue3中 toRefs和 toRef 的区别

  • toRefs 是为了避免对一个响应式对象解构的时候,解构后的每个属性不具有响应性
  • toRef 是为了针对单独获取某个对象的属性的时候保持响应性,从而单独对某个对象的属性进行响应式转化
  • 针对 reactive 或者 ref 创建的响应式对象都可以使用这两个 api 进行转化
  • 注意:toRefs只能对第一层对象的属性解构的时候进行响应式转化
复制代码
<script setup>
    import {
        reactive,
        toRef,
        toRefs
    } from 'vue'

    const testObj = reactive({
        a: 1,
        b: 2,
    });

  const testObj2 = ref({
        c: 3,
        d: 4,
    });

  // toRefs 的使用
  // const { a, b } = toRefs(testObj);
  // const { c } = toRefs(testObj2.value);

  // toRef 的使用
  let a = toRef(testObj, "a");
  let b = toRef(testObj, "b");
  let c = toRef(testObj2.value, "c");

  setTimeout(() => {
        a.value = 666;
    c.value = 888;
        console.log("2s后");
    }, 2000);
</script>
复制代码
<template>
    <div>
       <div>{{ a }}-{{ b }}-{{ c }}</div>
    </div>
</template>

 官方文档

posted @   蓓蕾心晴  阅读(268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2022-04-06 vite配置vite-plugin-style-import插件后启动报错
点击右上角即可分享
微信分享提示