首页/新闻资讯/正文详情

Vue 3.4 子组件标题不更新:保留 prop 的响应式读取

发布时间:2026/11/5 5:33:09 来源:云帆数科 栏目:资讯中心
Vue 3.4 子组件标题不更新:保留 prop 的响应式读取
父组件已经切换标题子组件却一直显示第一次传入的内容先别急着加 key 强制重建。这篇针对 Vue 3.4 默认编译配置下的 script setup定位基础类型 prop 被解构后失去后续关联的问题并给出保留属性访问和 toRef 两种写法。同时说明 Vue 3.5 的编译行为差异避免把旧结论直接套到新项目。一、先分清传入值没有变化还是子组件没有跟随一个公告预览项目左侧切换公告右侧子组件展示标题。如果父级页面显示的当前标题已经变了子组件的标题却仍是初始值应检查数据在两者之间怎样传递。不要先改接口缓存也不要通过刷新整页把状态问题暂时掩盖。在 Vue 3.4 的默认行为下把 defineProps 返回对象中的字符串属性解构到普通常量会取出当时的值。这个常量没有自动变成持续读取属性的入口。父级后来传来新的字符串原 props 属性会更新但旧常量仍保留原值。问题出在读取方式不代表父级修改失败也不是字符串需要手工触发更新。观察位置需要确认的内容判断价值父级模板标题是否真的切换排除上游状态不变子级 props.title是否跟随父级排除绑定名称错误子级解构变量是否停留在初始值定位快照式读取实际构建版本Vue 与编译器版本判断是否适用本篇分支本篇只处理基础类型标题的只读展示。若传入的是对象解构拿到的对象引用和对象内部属性变化还涉及另一层行为不能用“所有解构都完全不更新”一笔带过。二、用两个小文件建立最短对照在已有 Vue 3 项目的 src 下新建 NoticePreview.vue把原来复杂组件替换为最小展示。这里不需要请求后端也不需要 UI 组件库。把问题缩小为一个字符串能否从父级传到子级可以先排除异步请求、表单编辑和路由缓存带来的干扰。!-- src/NoticePreview.vue -- script setup const props defineProps({ title: { type: String, required: true } }) /script template section h2预览区域/h2 p{{ props.title }}/p /section /template在 App.vue 中使用这个子组件。下面是独立教学例子按钮每次在两份标题之间切换页面同时显示父级与子级读到的文本。字符串没有真实用户信息也没有后端依赖适合放入临时分支验证。script setup import { ref } from vue import NoticePreview from ./NoticePreview.vue const title ref(本周设备维护通知) function switchNotice() { title.value title.value 本周设备维护通知 ? 周末开放时间调整 : 本周设备维护通知 } /script template button typebutton clickswitchNotice切换公告/button p父级{{ title }}/p NoticePreview :titletitle / /template保存后使用项目已有的开发启动脚本运行预期父子两处标题始终一致。若父级自己都不变应检查按钮事件是否触发父级变化而 props.title 不变则检查实际使用的子组件、属性名和绑定冒号而不是继续修改响应式工具。三、需要传给组合函数时保留读取关系模板里直接访问 props.title 已经足够清楚。如果组合函数需要一个 ref可以用 toRef 把属性关联传进去。ref 的意思是可被跟踪的值容器这里关联的是只读 prop不能借此在子组件里修改父级状态。不要把 ref(props.title) 当作相同写法它会以当时的值建立另一个容器。script setup import { toRef, computed } from vue const props defineProps({ title: { type: String, required: true } }) const titleRef toRef(props, title) const label computed(() 当前公告${titleRef.value}) /script template p{{ label }}/p /template这里只选一种关联方式不需要再额外写 watch把 props.title 手工复制到另一个 ref。两份状态意味着还要决定谁是来源、何时同步和怎样处理用户编辑只读展示引入这些机制会让问题更复杂。确实需要编辑副本的表单则应按编辑、取消和提交的业务过程单独设计。监听变化时也要传入可追踪的数据源。对于 prop 属性可以使用读取函数作为 watch 的第一个参数而不是直接传入当下的字符串。后者只是一个已经取得的值不能表达以后从哪里读取。是否需要立即执行回调应根据功能决定不靠随意添加 deep 或 immediate 修补。四、Vue 3.5 为什么可能表现不同Vue 官方文档明确区分了版本三点五及以上在同一 script setup 中对 defineProps 解构变量的访问有编译层面的响应式处理三点四及以下默认没有相同行为。因此看到新教程中解构可正常更新不能反过来认定自己的旧项目一定是缓存问题。也不能不看代码位置就断言所有普通 JavaScript 解构都有这种能力。先查看 package.json 和锁文件中 Vue、单文件组件编译器及构建插件的实际版本。应用声明的范围不一定等于当前装入版本多个子项目也可能使用不同版本。若项目启用了实验性编译选项行为还应以实际构建配置为准本篇默认没有启用相关实验开关。即便处于新版本把一个解构后的属性值传给普通函数也要看那个函数需要的是当下值还是持续读取入口。编译器不能让所有接收字符串的外部函数自动获得未来更新。如果组合函数要跟踪变化采用 ref 或 getter 契约并在函数内部按这个契约读取。因此对维护多个版本的项目props.title 和明确的 toRef 仍然容易审查。这里并不是要求项目为了一个展示问题升级 Vue。升级需要同时检查编译器、插件和业务代码应该作为独立变更验证修复当前读取方式通常可以先在现有版本里完成。五、回到原组件按数据路径验收把最小例子通过后再把同样读取方式带回真实组件。连续切换两次不同标题确认没有只在首次渲染生效随后让父级从空内容变为正常内容确认可选值的默认处理符合预期。若属性本来必填就不要通过默认空串掩盖父级遗漏传值的错误。使用浏览器控制台检查警告同时确认组件实例没有因为 key 的变化被反复销毁重建。强制重建可能让标题看似更新却丢失子组件中的展开状态或输入内容。正确的只读属性更新应在同一实例中自然完成不依赖页面刷新。如果标题已更新而列表或表单仍有问题那是新的数据链路需要查看对应字段的来源和读取方式。不要把本篇结论扩展成“所有响应式异常都用 toRef”。求助时提供父级绑定、子级 props 定义、出现问题的读取代码以及 Vue 和编译器的实际版本即可不需要贴整套项目。这份例子依据官方资料编写未在读者环境实测。验收目标是父级值、子级属性和展示结果三者持续一致且没有为此引入额外可写状态。参考资料核验日期 2026-11-03官方页面未标注统一发布日期。VueProps响应式属性解构及版本差异。VueReactivity API UtilitiestoRef 与关联属性行为。

相关推荐

制造可控故障,生成 Core Dump,并用匹配的程序和符号定位问题
制造可控故障,生成 Core Dump,并用匹配的程序和符号定位问题

制造可控故障,生成 Core Dump,并用匹配的程序和符号定位问题 前几篇已经在 QEMU ARM64 中运行了交叉编译的程序,并使用 Dropbear 完成了密钥登录和 SSH 端口转发。本篇继续练习故障定位:在 guest 中运行一个会主动触发 SIGABRT 的… · 2026/11/5 5:33:09

全国地质灾害点分布数据 滑坡数据,泥石流数据 地质灾害类型:崩塌、地裂缝、地面沉降、地面塌陷、滑坡、泥石流、斜坡
全国地质灾害点分布数据 滑坡数据,泥石流数据 地质灾害类型:崩塌、地裂缝、地面沉降、地面塌陷、滑坡、泥石流、斜坡

全国地质灾害点分布数据,滑坡数据,泥石流数据 地质灾害类型:崩塌、地裂缝、地面沉降、地面塌陷、滑坡、泥石流、斜坡 数据集描述:全国地质灾害点分布数据,滑坡数据,泥石流数据 地质灾害类型:崩塌… · 2026/11/5 5:33:09

别再只会“帮我写个周报”了:用‌《千问高效办公的方法和技巧》把 AI 变成办公副驾
别再只会“帮我写个周报”了:用‌《千问高效办公的方法和技巧》把 AI 变成办公副驾

千问高效办公的方法和技巧【行情 报价 价格 评测】-京东 这本书的全文试读,点击下面链接: 王银辉AI办公新思路《千问高效办公的方法和技巧》全文分享~_千问办公教程-CSDN博客 在 CSDN 混的兄弟应该都有这种体感: 写代码我们用 Copilot&am… · 2026/11/5 5:33:09

2026年Typora依然是最佳Markdown编辑器的三大理由
2026年Typora依然是最佳Markdown编辑器的三大理由

1. 为什么在2026年我依然选择Typora作为一个重度Markdown用户,我几乎尝试过市面上所有主流编辑器。从早期的Mou到后来的VS CodeMarkdown插件,从Notion到Obsidian,最终在2026年这个时间节点,我依然选择回归Typora。这不是简单的怀旧… · 2026/11/5 6:13:22

区块链与智能冷链优化中非海鲜贸易
区块链与智能冷链优化中非海鲜贸易

1. 项目背景与行业痛点中非海鲜贸易长期以来面临着一个有趣的矛盾:一方面非洲西海岸盛产优质龙虾等海产品,另一方面中国作为全球最大的海鲜消费市场存在巨大需求。然而传统的跨境海鲜贸易链路存在几个核心痛点:冷链物流成本高昂(占… · 2026/11/5 6:13:22

自动驾驶边云协同架构设计与实践
自动驾驶边云协同架构设计与实践

1. 自动驾驶系统的架构演进与挑战自动驾驶技术正在经历从单车智能向协同智能的转变过程。早期的自动驾驶系统主要依赖车载计算单元处理传感器数据,这种架构面临着算力瓶颈、感知范围有限和长尾场景应对能力不足等问题。一辆普通自动驾驶车辆每天产生的数据量可达4TB… · 2026/11/5 6:13:22

CMS系统选型指南:WordPress、Drupal与Shopify对比
CMS系统选型指南:WordPress、Drupal与Shopify对比

1. CMS系统基础概念解析CMS(Content Management System)本质上是一个允许非技术人员通过图形界面管理网站内容的软件平台。想象一下,这就像给你的网站装了一个"驾驶舱"——不需要懂发动机原理也能开车。从技术架构看,现… · 2026/11/5 6:13:22

图论问题:如何最小化连接两棵树后的直径
图论问题:如何最小化连接两棵树后的直径

1. 题目背景与问题解析UVa 12677 "Join Two Kingdoms"是一道经典的图论问题,通常出现在ACM国际大学生程序设计竞赛的训练题库中。题目设定两个独立的王国(可以抽象为两棵树),需要通过建造一座桥梁将它们连接起来&#x… · 2026/11/5 6:13:22

CarPlay Plugin深度解析:MFi认证与AVTP协议桥接实战
CarPlay Plugin深度解析:MFi认证与AVTP协议桥接实战

简介:本资源是一款面向iOS车载系统开发者的CarPlay通信插件SDK,聚焦Apple CarPlay与iPhone的无线交互优化,适用于具备Objective-C/Swift基础、正开展MFi认证硬件集成或WAC协议适配的中高级开发者。压缩包含340个文件,主体为198个C… · 2026/11/5 6:12:21

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码