HarmonyOS7 页面间传参:@Param 与路由最佳实践
📅 2026/7/13 1:39:22
👁️ 次浏览
文章目录前言方式一组件内 Param 传值推荐V2代码实现方式二Navigation 路由参数跨页面核心代码回传数据Event 或 pop 带参完整示例最佳实践清单常见误区小白必踩完整可运行示例页面间传参代码解析写在最后前言页面跳转时几乎都要带数据点列表某项进详情得把该项 id传过去编辑页改完得把新值传回来。传参看着简单但新手常踩两个坑传过去取不到、改完回不去。这篇文章我把 HarmonyOS7 里两种主流传参方式组件Param、Navigation 路由参数的最佳实践讲透。方式一组件内 Param 传值推荐V2如果是组件嵌套或 Navigation 子页面用Param最规范。父/路由把数据作为构造参数传入子用Param接。代码实现ComponentV2struct UserCard{Paramuser:{id:number,name:string}{id:0,name:}build(){Column(){Text(姓名this.user.name)}}}// 使用UserCard user{{ id: 1, name: 张三 }} /Param是单向入参父/路由改了子自动更新。适合展示型传值把数据交给子组件渲染。方式二Navigation 路由参数跨页面通过NavPathStack.pushPath的param字段传任意对象核心代码// A 页面跳转并带参this.nav.pushPath({name:Detail,param:{id:this.itemId,from:list}})// B 页面Detail接收ComponentV2struct Detail{Consumer(nav)nav:NavPathStacknewNavPathStack()Localreceived:{id:number,from:string}{id:0,from:}aboutToAppear(){constpthis.nav.getParamByName(Detail)[0]this.receivedpas{id:number,from:string}}build(){NavDestination(){Text(收到 idthis.received.id)}}}要点param能传对象比老 router 的params: { xxx }字符串拼接清晰。目标页在aboutToAppear里用getParamByName取注意它是数组同名可能多个取[0]。回传数据Event 或 pop 带参子页改完要回传父页两种方式方式 AEvent 回调组件内——前面通信篇讲过子通过事件改父状态。方式 Bpop 带回结果跨页面完整示例// Detail 页返回时带结果this.nav.pop({result:{saved:true,newName:新名字}})// 调用方在 push 时监听this.nav.pushPath({name:Detail},(popInfo){constresultpopInfo.resultas{saved:boolean,newName:string}if(result.saved){this.nameresult.newName}})pop({ result })把结果带回pushPath的第二个回调能收到。这是编辑页回传的标准做法。最佳实践清单场景推荐方式父子组件传展示数据Param跨页面跳转入参pushPath({ param })跨页面回传结果pop({ result }) push 回调多页面共享数据Provider/Consumer反模式提醒别用全局单例/全局变量传参。临时能跑但数据流向乱了调试到哭。能用参数就传参能上Provider就上Provider。常见误区小白必踩误区说明用全局变量传参临时能跑但数据流向乱了调试到哭。能用参数就传参能上Provider就上Provider。回传不用pop({ result })跨页面回传结果用pop带参 push回调收比全局变量规范。把Param当可写Param只读子要改数据走Event或回传。下面这段代码可以直接复制到 DevEco Studio 里运行。建议你边读边敲改一改文末「动手改一改」里的参数亲眼看看效果。完整可运行示例页面间传参通过NavPathStack在跳转时带参数下一页用Param接收。代码解析// 跳转时携带参数目标页用 Param 接收EntryComponentstruct ListPage{Providenav:NavPathStacknewNavPathStack()build(){Navigation(this.nav){List(){ForEach([1,2,3],(id:number){ListItem(){Text(商品 id)}.onClick((){this.nav.pushPath({name:Goods,param:{id:id}})// 带参跳转})})}}.title(商品列表)}}Componentstruct Goods{Consumenav:NavPathStackParamid:number0// 接收参数build(){NavDestination(){Text(正在查看商品 IDthis.id).fontSize(20)}.title(商品详情)}}你会看到什么点不同商品详情页显示的 ID 跟着变——参数随路由精准传递。动手改一改把param换成复杂对象{ id, name, price }详情页分字段展示。用this.nav.pop({ param: { result: ok } })回传结果给上一页。把Param id改成Local体验「无法从路由接收」的报错。写在最后传参的本质是数据怎么流动。HarmonyOS7 给了我们清晰的工具箱Param管组件内、pushPath/pop管跨页面、Provider管全局共享。选对工具数据流一目了然bug 自然少。建议你把项目里所有靠全局变量传参的地方改成上面的正规方式——前期麻烦一点后期定位问题能省十倍时间。
真的服了,大半夜的,服务器突然就崩了。我盯着屏幕上的报错信息,心里那股火蹭蹭往上涨。openclaw网关拒绝访问,这几个字就像是在嘲笑我。折腾了一整天,头发都快掉光了。你也别笑,这种崩溃的感觉,搞技术的都懂。起初以为是网络波动,重启了几次路由器,没用。接着以为是配…
📅 2026/7/13 1:38:07
Kodi观影革命:当字幕下载变得像呼吸一样自然 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi
作为一名Kodi深度用户,你是否曾经在深夜打开心…
📅 2026/7/13 1:38:22
macOS 13 Ventura 安装 Git 2.40:5个常见错误与自动化脚本修复升级到macOS Ventura后,许多开发者发现Git安装过程变得比以往更棘手。从权限问题到环境变量冲突,再到Homebrew的兼容性挑战,每个环节都可能成为阻碍工作流的绊脚石。本…
📅 2026/7/13 1:38:22
一、概述
Pair 是 Apache Commons Lang3 提供的二元元组工具类,是 SpringBoot 项目中最常用的双值临时封装工具。
核心作用:一个方法需要返回两个不同结果,不想新建 DTO/VO 时,临时封装两个数据。
区别于 JDK 无原生 Pair…
📅 2026/7/13 2:41:45
免费生成开题报告的工具分学术专用工具、通用大模型、轻量辅助工具三类,以下是 2026 年 7 月实测可用的免费 / 限免工具,附核心功能、免费额度与适用场景,可直接落地。一、免费开题报告生成工具汇总(按场景分类)
工具名…
📅 2026/7/13 2:41:45
那天下午,我正调试一个基于 Transformer 的文本生成模型。模型在短文本上表现惊艳,可一旦输入长文档,推理速度就断崖式下跌,GPU 内存占用也直线飙升。盯着nvidia-smi里即将触顶的显存条,我突然意识到:问题可…
📅 2026/7/13 2:41:45
还在为论文的AI痕迹和高查重率发愁?2026年,降AIGC网站已经彻底改变游戏规则。这些工具不仅高效去除AI痕迹,还能全面优化文本内容,真正实现省心又省力,让你的论文轻松过关。
一、全流程王者:一站式搞定论文全…
📅 2026/7/13 2:41:45
Spring Boot 4.1 | Spring Cloud Alibaba 2025.1.x | Spring AI 2.0 | 16 个模块 | HTTP / Dubbo / gRPC / Stream / Kafka 五协议共治 学 Spring Cloud 最让人沮丧的不是理解概念,而是把它跑起来。
Nacos 要装、RocketMQ 要启、MySQL 要建表、Seata Server 要配、…
📅 2026/7/13 2:41:44
更多请点击:
https://intelliparadigm.com
第一章:Perplexity的核心价值与咨询行业适配逻辑 Perplexity 作为基于语言模型的实时知识检索增强系统,其核心价值不在于替代人类专家,而在于将“信息发现效率”转化为“认知决策带宽”…
📅 2026/7/13 2:40:44
做技术的人都知道,环境配置是最让人头秃的环节。特别是当你面对一个相对小众或者刚起步的项目时,文档可能不全,社区可能冷清。这时候,找到靠谱的来源就显得尤为重要。今天咱们不聊虚的,就聊聊怎么稳妥地完成 openclaw安装官方 流程,顺便分享几个我踩过的坑,希望能帮你省…
📅 2026/7/13 0:01:22
1. 项目概述:当火焰特效成为帧率杀手在UE5项目里,尤其是那些追求电影级视觉的开放世界或者大场景战斗游戏,一个熊熊燃烧的篝火、一次震撼的爆炸,往往是点燃玩家情绪的关键。Niagara作为虚幻引擎5中取代了老旧的Cascade的下一代粒子…
📅 2026/7/13 0:01:52
1. 项目概述与核心价值 最近在对接抖音小游戏平台时,侧边栏复访功能成了一个绕不开的“必答题”。很多开发者朋友,包括我自己一开始,都对这个功能有点摸不着头脑:它到底是什么?为什么平台这么重视?不接入行…
📅 2026/7/13 0:01:52
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/12 0:15:59
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/12 15:39:57
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/12 8:07:36