理解vue中的ref
前端代码templatedivclasscontainerbutton clickfetchDataFromBackend获取后端信息/buttondivclassdisplay-boxp返回的消息{{info}}/p/div/div/templatescript setupimport{ref}fromvue;importaxios fromaxios;//1. 定义响应式变量用于绑定文字框 const inforef(点击按钮获取内容...);//2. 编写请求函数 const fetchDataFromBackendasync(){try{// 像后端接口发送 GET 请求 const responseawait axios.get(http://127.0.0.1:8000/api/data);//3. 将返回的数据赋值给响应式变量页面会自动更新 info.valueresponse.data.message;}catch(error){console.error(请求失败:, error);info.value无法连接到后端服务器;}};/script在上面的VUE的示例代码中有一个info变量。继承自ref。上面的代码其实是分了两部分一部分是上面的VUE前端代码一部分是下面的JS代码。这里的ref在 JavaScript 中不是一个普通的字典Object而是一个“响应式代理对象”。因此不能直接用python中的字典类型去套。这是一个非常棒的观察对于刚从 PythonFastAPI转到 Vue 3 的开发者来说这确实是一个容易混淆的地方。简单来说info在 JavaScript 中不是一个普通的字典Object而是一个“响应式代理对象”。1. 什么是ref对象当你使用const info ref(...)时Vue 会把你的原始数据字符串、数字或对象包装在一个特殊的RefImplRef 实现对象中。这个对象主要包含以下几个关键部分字段名作用.value最核心的字段。存储你真正的原始值。Vue 拦截了对这个字段的访问和修改从而实现“数据变了页面跟着变”。__v_isRef一个标识符Vue 用它来判断这个变量是不是由ref创建的。dep内部使用的依赖收集器用来记录哪些组件正在使用这个变量以便更新。一句话总结info本身是一个“盒子”.value才是盒子里装的东西。在script中你需要手动开盒.value但在template模板中Vue 会帮你自动开盒。2. 案例对比Python 字典 vs Vue Ref为了方便理解我们可以对比一下两者的操作逻辑在 Python (FastAPI) 中数据是静态的。# 这是一个真正的字典user_info{message:Hello}print(user_info[message])# 直接访问键在 Vue 3 中数据是响应式的。// info 不是字典而是一个被 Vue 监控的“盒子”constinforef(Hello);// 修改数据info.valueWorld;// 背后发生的事情// 1. 你修改了 value// 2. info 内部的监听器触发// 3. Vue 通知浏览器“嘿页面上用到 info 的地方都要重画一下”3. 为什么不直接用普通变量如果你在 Vue 里直接写let info Hello当你修改这个变量时网页上的文字是不会变的。案例演示普通变量你改了变量页面像死水一样没反应。ref变量你改了.value页面上的文字会瞬间“跳”成新的内容。4. 特殊情况如果 ref 里面装的是对象如果你用ref装了一个对象你会发现需要写“两层”constuserref({name:张三,age:25});// 访问名字console.log(user.value.name);// 第一层 .value 进盒子第二层 .name 访问字典键 避坑小贴士在 Vue 3 开发中最常见的报错就是“忘了写.value”。如果你发现打印info出来是一堆奇奇怪怪的对象包含dep,__v_isRef等那说明你忘了加.value。但在 HTML 模板template里面绝对不要写.valueVue 会自动处理。划重点在vue的template中绝对不要写.value因为ref本身就是VUE自己定义的对象VUE会自己识别里面的内容并做处理会自动“开盒”。

相关新闻

学长亲荐!MBA毕业论文必备TOP8 AI论文写作软件测评

学长亲荐!MBA毕业论文必备TOP8 AI论文写作软件测评

学长亲荐!MBA毕业论文必备TOP8 AI论文写作软件测评 2026年MBA论文写作工具测评:为什么你需要这份榜单? 随着人工智能技术的不断进步,AI写作工具在学术领域的应用越来越广泛。对于MBA学生而言,撰写高质量的毕业论文不…

2026/7/5 15:31:17 阅读更多 →
1 个岗位 3000 人投,211 也只是分母?教你如何把“平庸经历”包装成 HR 必看的 1% 爆款

1 个岗位 3000 人投,211 也只是分母?教你如何把“平庸经历”包装成 HR 必看的 1% 爆款

在 2026 年,求职市场的“通胀”已经让学历光环极度缩水。 当一个岗位涌入 3000 份投递时,系统后台的初筛逻辑非常简单粗暴:学历只是“门槛过滤”,而真正的“置顶权重”取决于你的经历是否具备爆发力。 很多 211/985 的同学最吃亏…

2026/7/3 15:08:21 阅读更多 →
基于springboot的天盛装潢公司管理系统

基于springboot的天盛装潢公司管理系统

背景分析 天盛装潢公司作为一家快速发展的装修企业,面临业务规模扩大带来的管理挑战,传统手工或单机管理方式已无法满足需求。具体问题包括: 项目进度滞后:依赖人工跟踪,信息传递效率低,易出现延误。材料…

2026/7/5 0:15:56 阅读更多 →

最新新闻

锂电硬件级过压保护方案设计与STM32实现

锂电硬件级过压保护方案设计与STM32实现

1. 项目背景与核心器件选型锂离子电池因其高能量密度和长循环寿命,已成为便携式电子设备和储能系统的首选电源方案。但过充电是导致锂离子电池热失控甚至起火爆炸的主要诱因之一,这让我在去年开发户外储能电源时深有体会。当时测试组反馈,在快…

2026/7/5 15:58:53 阅读更多 →
Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能

Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能

Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能 【免费下载链接】gemma-4-E4B 项目地址: https://ai.gitcode.com/hf_mirrors/google/gemma-4-E4B 当你面对一个需要同时处理文本、图像、音频和视频的AI项目时,是否曾为选择合适模型而…

2026/7/5 15:56:41 阅读更多 →
Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战

Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战

Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战 【免费下载链接】IofTV-Screen-Vue3 一个基于 vue3、vite、Echart 框架的大数据可视化(大屏展示)模板 项目地址: https://gitcode.com/gh_mirrors/io/IofTV-Screen-Vue3 …

2026/7/5 15:56:41 阅读更多 →
Gin-Vue-Admin代码生成器字段编辑:5个深度优化技巧与架构解析

Gin-Vue-Admin代码生成器字段编辑:5个深度优化技巧与架构解析

Gin-Vue-Admin代码生成器字段编辑:5个深度优化技巧与架构解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin的开发基础平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下…

2026/7/5 15:54:41 阅读更多 →
3分钟掌握 facetype.js:终极字体转换工具完全指南

3分钟掌握 facetype.js:终极字体转换工具完全指南

3分钟掌握 facetype.js:终极字体转换工具完全指南 【免费下载链接】facetype.js typeface.js generator 项目地址: https://gitcode.com/gh_mirrors/fa/facetype.js facetype.js 是一个强大的在线字体转换工具,专门用于将标准字体文件转换为 type…

2026/7/5 15:54:41 阅读更多 →
DINOv3:重新定义视觉基础模型的无监督学习范式

DINOv3:重新定义视觉基础模型的无监督学习范式

DINOv3:重新定义视觉基础模型的无监督学习范式 【免费下载链接】dinov3 Reference PyTorch implementation and models for DINOv3 项目地址: https://gitcode.com/GitHub_Trending/di/dinov3 在计算机视觉领域,大规模预训练模型正经历着从监督学…

2026/7/5 15:54:41 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻