vue3 为什么需要toRef和toRefs
为什么在vue3中需要 toRef和toRefs先给一个最直接的答案这是响应式设计语言最底层上的根源缺陷(天生自带)。所以 toRef和toRefs就是为了弥补js语言而不得不打的补丁。下面深入看一下为什么一、JS 的值传递机制破坏了Proxy的拦截总所周知js数据类型分为基本数据类型和引用数据类型基本数据类型的值直接在栈内存中存储而引用数据类型存储在堆中并且变量保存的是地址不是原始值。搞清楚这一点后来看一下 解构的执行逻辑。js中不管对方是基本数据类型还是引用数据类型解构起到的是搬运操作。对于基本数据类型基本类型直接存储在栈内存Stack中占据固定大小的空间。解构时先得到该值所在位置然后JS 引擎在栈内存中开辟一块全新的空间把这个要解构的值复制进去。新变量指向这个新空间。修改新变量绝对不会影响源对象中的属性对于引用数据类型引用数据类型存储在堆内存Heap中占据不定大小空间栈内存只存一个指向堆内存的指针内存地址。解构时引擎取出的是栈中的指针地址比如 0xFF01。把这个地址复制给新变量新变量 b 和源对象属性指向堆内存中的同一块地址。因此修改新变量中数值源对象中也会变示例: 对 state 进行解构conststatereactive({count:0,name:Vue});const{count,name}state;根据解构原理来说 因为count 和name都是基础数据类型所以解构出来的 count和name 都是新值所以原来的proxy代理不生效。为了解决这个问题 vue3 引入了toRef 来解决来看一下简易源码classObjectRefImpl{getvalue(){// 每次你访问 .value我都去源对象上读取最新值returnthis._object[this._key];}setvalue(newVal){// 每次你设置 .value我都去修改源对象this._object[this._key]newVal;}}可以看出使用 toRef后之所以还能够保持响应式得主要原因toRef返回的根本不是响应式数据而是一个指向源对象属性的引用再来看下toRefsexportfunctiontoRefsTextendsobject(object:T):ToRefsT{// 如果不是 reactive 对象开发环境会警告但依然可以工作constresult:anyArray.isArray(object)?newArray(object.length):{};// 遍历对象的所有 keyfor(constkeyinobject){// 对每个 key 执行 toRef建立映射result[key]toRef(object,key);}returnresult;}其实toRefs就是批量执行了toRef把对象得所有属性变成ref。有了toRefs我们就能够很方便的构造出usexxx函数setup(){functionuseInfo(){conststatereactive({count:0,name:Vue});// 返回时用 toRefs 包裹模板中就可以直接写 {{ count }}无需写 state.countreturn{...toRefs(state)};}const{count,name}useInfo();}

相关新闻

SpringBoot2+Vue3+MySQL 美食分享平台源码 前后端分离实战项目

SpringBoot2+Vue3+MySQL 美食分享平台源码 前后端分离实战项目

一、项目简介 本项目是一个基于 Spring Boot 2 Vue 3 MySQL 技术栈开发的前后端分离美食分享平台。系统采用经典的前后端分离架构,后端提供 RESTful API 接口,前端通过 Vue 3 单页应用进行交互。平台包含普通用户端和管理员端两大角色:普通…

2026/8/1 22:01:26阅读更多 →
Seroval 未来路线图:即将推出的 5 大新功能预览

Seroval 未来路线图:即将推出的 5 大新功能预览

Seroval 未来路线图:即将推出的 5 大新功能预览 【免费下载链接】seroval Stringify JS values 项目地址: https://gitcode.com/gh_mirrors/se/seroval Seroval 作为一款高效的 JavaScript 值序列化工具,正不断优化其核心能力。本文将为你揭秘 Se…

2026/8/1 22:01:26阅读更多 →
Android-EDLA 谷歌安全补丁、GMS包以及mainline包更新

Android-EDLA 谷歌安全补丁、GMS包以及mainline包更新

Android-EDLA 谷歌安全补丁、GMS包以及mainline包更新 文章目录Android-EDLA 谷歌安全补丁、GMS包以及mainline包更新1.谷歌安全补丁更新1.1 下载安全补丁1.2 打入安全补丁1.3 STS测试安全补丁1.3.1 测试方法1.3.2 Fail项处理2.GMS包更新2.1 下载GMS包2.2 更新GMS包3.Mainline包…

2026/8/1 21:59:25阅读更多 →
MPack技术架构深度解析:高性能MessagePack C库的设计哲学与系统集成实践

MPack技术架构深度解析:高性能MessagePack C库的设计哲学与系统集成实践

MPack技术架构深度解析:高性能MessagePack C库的设计哲学与系统集成实践 【免费下载链接】mpack MPack - A C encoder/decoder for the MessagePack serialization format / msgpack.org[C] 项目地址: https://gitcode.com/gh_mirrors/mp/mpack MPack是一个专…

2026/8/1 23:15:56阅读更多 →
别再用关键词匹配做日程检测了!——2024最新因果推理模型在冲突预测中的压测结果曝光

别再用关键词匹配做日程检测了!——2024最新因果推理模型在冲突预测中的压测结果曝光

更多请点击: https://kaifayun.com 第一章:AI 日程冲突检测 日程冲突检测是智能办公系统的核心能力之一,它通过语义理解与时间逻辑推理,自动识别用户日历中重叠、资源争用或规则违背的事件安排。现代实现通常结合自然语言处理&am…

2026/8/1 23:15:56阅读更多 →
生成式AI遇上计算几何:5类不可逆失真场景预警,早识别早规避(含OpenCV+Blender检测脚本)

生成式AI遇上计算几何:5类不可逆失真场景预警,早识别早规避(含OpenCV+Blender检测脚本)

更多请点击: https://intelliparadigm.com 第一章:生成式AI与计算几何的交叉失真本质 当生成式AI模型尝试建模空间结构(如三维点云重建、参数化曲面生成或拓扑感知布局优化)时,其隐式表征机制与计算几何中对精确性、…

2026/8/1 23:15:56阅读更多 →
可灵画幅比例设置失效真相:GPU渲染管线冲突导致的黑边/裁切问题深度溯源

可灵画幅比例设置失效真相:GPU渲染管线冲突导致的黑边/裁切问题深度溯源

更多请点击: https://codechina.net 第一章:可灵画幅比例设置失效真相:GPU渲染管线冲突导致的黑边/裁切问题深度溯源 可灵(Kling)在启用自定义画幅比例(如 4:3、9:16、2.35:1)时频繁出现黑边残…

2026/8/1 23:15:56阅读更多 →
乡村AI不是“城市模型下乡”!破解算力受限、标注缺失、场景碎片三大死结的7步渐进式落地法

乡村AI不是“城市模型下乡”!破解算力受限、标注缺失、场景碎片三大死结的7步渐进式落地法

更多请点击: https://codechina.net 第一章:乡村AI不是“城市模型下乡”!破解算力受限、标注缺失、场景碎片三大死结的7步渐进式落地法 乡村AI的本质,是面向低资源、高异构、弱连接环境的系统性重构,而非将城市训练好…

2026/8/1 23:15:56阅读更多 →
终极指南:掌握DLX自托管翻译API服务的完整教程

终极指南:掌握DLX自托管翻译API服务的完整教程

终极指南:掌握DLX自托管翻译API服务的完整教程 【免费下载链接】DLX DLX - Self-hosted translation API server. Unofficial; not affiliated with DeepL SE. 项目地址: https://gitcode.com/gh_mirrors/de/DLX 在当今全球化时代,高质量翻译服务…

2026/8/1 23:13:56阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/8/1 21:54:49阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/8/1 22:30:08阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/8/1 21:14:15阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →