当前位置: 首页 > news >正文

【vue3|第7期】 toRefs 与 toRef 的深入剖析

日期:2024年6月6日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


文章目录

  • 一、前言
  • 二、toRefs
    • 1、使用场景
    • 2、响应式维护
  • 三、toRef
    • 1、使用场景
    • 2、响应式维护
  • 四、联系与区别
  • 五、结论


在这里插入图片描述


一、前言

Vue3 的响应式系统中,toRefstoRef 是两个非常有用的工具函数,它们用于将响应式对象的属性转换为单独的响应式引用。在本文中,我们将探讨这两个函数的联系与区别,并了解它们在实际开发中的应用场景。

二、toRefs

toRefs 函数用于将一个响应式对象的所有属性转换为单独的响应式引用。这个函数通常与解构赋值一起使用,以便我们可以轻松地访问响应式对象的每个属性。

1、使用场景

假设我们有一个响应式对象 state,包含 nameage 两个属性:

const state = reactive({name: 'Commas',age: 18
});

现在我们想解构这个对象,并保持每个属性的响应式。这时,toRefs 就派上用场了:

const { name, age } = toRefs(state);

这样,nameage 就成为了单独的响应式引用,我们可以直接使用它们,而不必担心失去响应式。

2、响应式维护

toRefs 创建的 refs 是对原始对象的“浅拷贝”,因此在操作这些refs时需要小心,以免影响到原始对象的响应性。

三、toRef

toRef 函数用于为源响应式对象的某个属性创建一个响应式引用。与 toRefs 不同的是,toRef 只能用于单个属性

1、使用场景

假设我们有一个响应式对象 state,包含 nameage 两个属性。现在我们只想为 name 属性创建一个响应式引用:

const name = toRef(state, 'name');

这样,name 就成为了 state.name 的响应式引用。我们可以直接修改 name.value,这个修改会反映到 state.name 上。

2、响应式维护

toRef 创建的 ref 是对特定属性的直接引用,它不会影响到原始对象的响应性结构。

四、联系与区别

  • toRefstoRef 都用于创建响应式引用
  • toRefs 用于将整个响应式对象的所有属性转换为响应式引用,而 toRef 只用于单个属性
  • toRefs 通常与解构赋值一起使用,方便同时访问多个属性,而 toRef 用于为单个属性创建响应式引用

五、结论

Vue3 中,toRefstoRef 是非常有用的工具函数,它们可以帮助我们更好地处理响应式数据。了解它们的联系与区别,可以帮助我们更灵活地应用它们,提高开发效率。


参考文章:

  • Vue.js

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/139485667

http://www.lryc.cn/news/364821.html

相关文章:

  • git代码冲突处理软件P4Merge
  • Unity物体材质属性Offset动态偏移
  • 【数据结构】筛选法建堆
  • DevExpress Installed
  • 解决QT QMessageBox 弹出需点击两次才能关闭问题
  • Milvus--向量数据库
  • php质量工具系列之PHPCPD
  • Android14 WMS-窗口绘制之relayoutWindow流程(二)-Server端
  • 安全测试 之 安全漏洞:SQL注入
  • CUDA和驱动版本之间的对应关系
  • MDK(μVsion3)问题总结及解决方法
  • 手眼标定学习笔记
  • Dell戴尔XPS 16 9640 Intel酷睿Ultra9处理器笔记本电脑原装出厂Windows11系统包,恢复原厂开箱状态oem预装系统
  • 【第8章】SpringBoot实战篇之文章分类(上)
  • 【QT】Qt Plugin开发
  • 快速了解GPU分布通信技术:PCIe、NVLink与NVSwitch
  • Python对获取数据的举例说明
  • JVMの垃圾回收
  • 人工智能就业方向有哪些?
  • 自定义类型:枚举和联合体
  • 负载均衡加权轮询算法
  • PyTorch 相关知识介绍
  • 1千2初中英语语法题库ACCESS\EXCEL数据库
  • 高德面试:为什么Map不能插入null?
  • MySQL数据库主从配置
  • 测试工程师经常使用的Python中的库,以及对应常用的函数
  • 【frp】服务端配置与systemd启动
  • 计算机网络学习实践:模拟RIP动态路由
  • 详解 Flink 的常见部署方式
  • 【UE5.1 角色练习】11-坐骑——Part1(控制大象移动)