Vue中的ref和reactive到底在干嘛 ref1. 先搞懂一个核心问题Vue 怎么知道你改了数据然后刷新页面Vue 需要盯着你的变量一变就自动更新网页上显示的内容。普通变量 Vue 盯不住letnum1num2Vue完全没感知页面数字不会变。2. ref 干的唯一一件事给变量套一层「监控外壳」ref(里面的值)会生成一个外壳对象Vue 专门盯着这个外壳。import{ref}fromvueconstnumref(1)底层真实结构可以理解成这样num{// 真正存数字的地方value:1,// Vue偷偷藏了监听代码}外壳numVue能看见、能监控真正的数据藏在.value里面。改数据的时候必须改 .valuenum.value2Vue 检测到你修改了外壳里的 value立刻刷新页面。如果你写成num 2直接把整个监控外壳扔掉了Vue 失去监控页面不动。3. 模板里为什么不用 .value模板是 Vue 单独处理的语法它会自动帮你读取.value。!-- 不用写 num.value -- div{{ num }}/div4. 最简可运行对比一眼看出差别例子1不用 ref页面不更新script setupletcount0functionadd(){countconsole.log(count)// 控制台数字变了页面不动}/scripttemplatep数字{{count}}/pbutton clickadd点我1/button/template例子2用 ref页面同步更新script setupimport{ref}fromvue// 套监控外壳constcountref(0)functionadd(){// 修改外壳内部的值count.value}/scripttemplatep数字{{count}}/pbutton clickadd点我1/button/template5. ref 第二个用途获取页面DOM标签你想操作页面上的输入框、按钮JS原生拿DOM很麻烦用ref绑定script setupimport{ref,onMounted}fromvue// 空的监控外壳专门存input元素constinputDomref(null)// 页面渲染完后onMounted((){// inputDom.value 就是页面里的input标签inputDom.value.focus()// 自动光标聚焦输入框})/scripttemplate!--ref名字和变量对应--input refinputDomplaceholder搜索//templateVue 把 ref 做成了模板特殊指令自动帮你完成「查找 DOM、存入变量」这一步不用手写 querySelector这是框架封装出来的语法。补充对比input idsearchInputplaceholder搜索script// 原生必须手动根据id获取DOMconstinputdocument.getElementById(searchInput)// 页面加载完才能操作window.onloadfunction(){input.focus()}/scriptVue 简化后不用写选择器靠同名 ref 自动绑定是框架提供的便利语法。6. 一句话终极总结ref 给数字/字符串/布尔/DOM标签包一层 Vue 能监控的外壳代码里改值要.value模板里直接写变量名。reactive1. reactive 和 ref 是亲兄弟作用一样让数据变响应式改了页面自动更新区别只在于装的数据类型不一样ref装单个简单值数字、字符串、布尔、DOM要用.valuereactive专门装对象、数组不用写.value2. 先看对比一眼看懂场景1表单对象用 reactiveimport{reactive}fromvue// 把整个表单变成响应式constformreactive({filename:,status:,id:0})// 直接点属性修改不用 .valueform.filename测试文档.pdfform.statussuccess场景2如果硬用 ref 写对象麻烦constformref({filename:})// 修改必须两层 .value很啰嗦form.value.filenamexxx3. reactive 底层原理ref 是套一层{ value: xxx }reactive 直接把整个对象本身变成可监听代理不用包一层盒子所以不用.value。4. 数组也用 reactiveconstdocListreactiveDocumentRead[]([])// 直接push、修改数组页面自动刷新docList.push({id:1,filename:a.pdf,status:})5. 核心优缺点优点修改属性简洁不用每次打.value表单、列表首选。大坑重点不能直接替换整个对象会丢失响应式constformreactive({name:})// ❌ 错误直接覆盖整个对象Vue 失去监听form{name:新名字}// ✅ 正确只改里面属性form.name新名字ref 就没这个问题constformref({name:})// 可以直接替换 .valueform.value{name:新名字}6. ref 和 reactive 选择口诀单个数字/字符串/布尔 / DOM引用 →ref表单、JSON对象、列表数组 →reactive7. 配套工具 toRefs高频搭配 reactive如果你想把 reactive 对象拆分成单独变量不丢失响应式import{reactive,toRefs}fromvueconstformreactive({name:,id:1})// 解构出独立ref变量const{name,id}toRefs(form)// 此时 name、id 是 ref修改需要 .valuename.value张三一句话总结reactive是 Vue 提供的API专门把对象、数组转为响应式直接.属性修改不用写.value适合表单、列表这种复杂结构数据。

相关新闻

最新新闻

从一块屏到十六块屏:parsec-vdd 虚拟显示器保姆级上手实录

从一块屏到十六块屏:parsec-vdd 虚拟显示器保姆级上手实录

从一块屏到十六块屏:parsec-vdd 虚拟显示器保姆级上手实录 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 深夜,我盯着刚开好的一台 Windows 云服务器发愣…

2026/8/20 16:21:36
036、RT-1真实世界机器人Transformer:动作Token化与模仿学习实战

036、RT-1真实世界机器人Transformer:动作Token化与模仿学习实战

036、RT-1真实世界机器人Transformer:动作Token化与模仿学习实战 调试间里那台UR5又撞了。不是撞桌子,是撞它自己——夹爪在接近目标点的时候突然抽搐了一下,然后整个轨迹像喝醉了酒一样甩出去。我看了一眼终端,loss还在往下掉&am…

2026/8/20 16:21:36
037、RT-2视觉-语言-动作大模型:从互联网预训练到动作生成迁移

037、RT-2视觉-语言-动作大模型:从互联网预训练到动作生成迁移

037、RT-2视觉-语言-动作大模型:从互联网预训练到动作生成迁移 调试机器人策略的时候,我盯着终端里那一行行loss曲线,心里直犯嘀咕——明明仿真里跑得好好的,怎么一上真机就各种抽风?后来想明白了,问题不在…

2026/8/20 16:21:36
新手注意:2026选转文字软件怎么避坑?过来人分享亲测经验

新手注意:2026选转文字软件怎么避坑?过来人分享亲测经验

先说明白核心判断 2026年选转文字软件,新手避坑的核心逻辑是不要盲目追免费噱头或者大厂商光环,要围绕自身核心需求选工具。对于需要转付费课程、播客内容整理成个人知识的用户来说,核心要避开三类坑:转写准确率不足的基础工具、…

2026/8/20 16:21:36
2026年董事会会议纪要哪个好 成本分析深度测评,谁才是性价比王者

2026年董事会会议纪要哪个好 成本分析深度测评,谁才是性价比王者

先回答用户真正关心的问题 针对“董事会会议纪要哪个好”这个问题,2026年选工具核心要匹配你的团队规模和实际需求,目前主流的五款工具各有适配场景。如果是需要高性价比、能自动出结构化纪要和待办的正式会议场景,更推荐优先试试专门做智能…

2026/8/20 16:21:36
创业团队技术选型的常见误区

创业团队技术选型的常见误区

创业团队技术选型的常见误区 “最小可行方案的范围切分”说的不是一套通用技巧,而是 技术人的商业思维与创业避坑指南 中一个应被单独处理的环节。MVP 的范围由要验证的假设决定,不由演示时的完整感决定。本文不假定任何真实公司数据或项目经历&#xf…

2026/8/20 16:16:36