HarmonyOS ArkUI 组件复用与父子组件通信
在鸿蒙ArkUI声明式开发体系中组件复用与父子组件通信是从“基础页面编写”进阶到“工程化项目开发”的核心分水岭。规范化开发通过复用机制精简代码、统一UI风格并通过组件通信实现页面数据驱动更新。一、前言为什么需要组件复用在开发电商首页、购物车、列表卡片等复杂页面时页面中存在大量重复的样式、重复的UI结构、统一的交互逻辑。如果全部手写会出现代码冗余、样式不统一、后期维护成本极高的问题。ArkUI 提供了一套完整的复用方案样式复用、UI结构复用、自定义组件复用配合父子组件数据通信机制能够实现高内聚、低耦合的前端开发模式也是企业级鸿蒙项目模块化开发的基础。二、三大复用装饰器对比与实战用法(1)Styles全局通用样式复用Styles 用于抽取多个组件通用的公共样式仅复用样式属性不复用UI结构。适用于全局统一的字体、颜色、边距、对齐等基础样式。核心特点无组件绑定、全局可调用、轻量化、仅样式复用。适用场景统一页面文本样式、统一按钮默认样式、统一卡片边距圆角。// 全局通用样式 Styles function commonText() { .fontSize(14) .fontColor(#333333) .margin(10) } Styles function cardBg() { .backgroundColor(Color.White) .borderRadius(12) .shadow(0.5, 10, Color.Gray) .padding(12) }(2)Extend专属组件样式扩展与 Styles 不同Extend绑定指定原生组件只能作用于目标组件可以扩展原生组件属性甚至绑定专属交互逻辑。核心特点组件专属、可扩展原生能力、比 Styles 功能性更强。适用场景自定义专属Text文本、专属Button按钮实现全局统一的定制化组件样式。// 专属Text组件扩展样式 Extend(Text) function titleText() { .fontSize(18) .fontWeight(FontWeight.Bold) .fontColor(#000) }(3)BuilderUI结构片段复用Builder 是 ArkUI 中复用UI结构的核心方案可以封装一段重复的组件结构支持传参、支持动态数据渲染是页面局部复用的最优解。同时搭配 BuilderParam 可以实现父组件向子组件注入自定义UI片段实现高灵活度的组件插槽效果极大提升组件的复用性和扩展性。适用场景列表卡片、通用标题栏、通用空数据页面、重复弹窗结构。// 封装通用卡片布局 Builder function GoodsCard(name: string, price: number) { Column() { Text(name).titleText() Text(¥${price}).fontColor(#f56c6c).fontSize(16) } .cardBg() .width(100%) }三、自定义组件与父子组件通信原理单纯的结构复用只能解决代码冗余问题想要实现数据驱动UI更新必须依靠组件状态通信机制。在模块化开发中页面会拆分为父组件与多个子组件数据由父组件统一管理子组件负责展示通过单向数据流实现状态统一管理。(1)核心通信装饰器Prop 单向传值Prop 用于实现父组件向子组件单向数据传递是项目中最常用的组件通信方式。父组件使用 State 定义状态变量通过传参传递给子组件的 Prop 变量。核心机制父组件数据更新 → 自动同步子组件 → 子组件UI自动刷新子组件无法修改父组件数据保证数据流单向可控避免状态混乱。(2)State 与 Prop 职责区分很多新手误区子组件定义大量 State 状态。实际工程规范中State仅用于组件内部私有状态不对外暴露Prop用于接收父组件传递的业务数据只读、可响应更新该机制保证了数据来源唯一是复杂页面状态不乱、易于维护的关键。3购物车案例子组件 GoodsItem.etsComponent export struct GoodsItem { // 接收父组件传值 Prop goodsName: string Prop goodsCount: number build() { Row() { Text(this.goodsName) Text(数量${this.goodsCount}) } .commonText() } }父组件页面使用 状态更新import { GoodsItem } from ./GoodsItem Entry Component struct Index { // 父组件唯一数据源 State name: string 鸿蒙学习手册 State count: number 1 build() { Column() { // 子组件绑定父状态 GoodsItem({ goodsName: this.name, goodsCount: this.count }) // 修改父状态子组件自动刷新 Button(增加数量) .onClick(() { this.count }) } .padding(20) } }四、总结三者复用方案各司其职样式复用统一界面、Builder 结构复用精简代码、自定义组件Prop通信实现业务解耦。掌握这套体系后已经具备开发中大型电商级复杂页面的能力摆脱新手式重复编码写出规范、简洁、可维护的鸿蒙代码。

相关新闻

大模型技术竞赛现状与未来趋势分析

大模型技术竞赛现状与未来趋势分析

1. 大模型技术竞赛现状全景扫描2023年全球科技行业最引人注目的现象,莫过于各大科技机构在大型语言模型(LLM)领域的军备竞赛。这场竞赛的激烈程度远超预期,呈现出三个典型特征:迭代速度指数级增长:GPT-4到G…

2026/7/27 21:22:34 阅读更多 →
Soft Prompt(软提示)

Soft Prompt(软提示)

Soft Prompt(软提示)可以理解为:不是人写出来的文字提示,而是一组由模型学习出来的向量提示。1. 先理解普通提示词我们平时输入给大模型的文字,例如:请根据用户历史记录推荐一部电影。这种能直接看到、读懂…

2026/7/28 17:04:20 阅读更多 →
别再瞎找了!盘点2026年顶流之选的的降AIGC软件

别再瞎找了!盘点2026年顶流之选的的降AIGC软件

轻松降低论文AI率在2026年已不再是天方夜谭。以下是2026年最炸裂、实测效果显著的降AIGC软件神器,覆盖AI痕迹消除、文本改写润色、降重优化、学术合规检测四大核心场景,帮你稳妥搞定毕业论文。 一、全流程王者:一站式搞定论文全链路 这类工具…

2026/7/28 16:46:11 阅读更多 →

最新新闻

Mojo与C++性能深度对比:从计算密集型任务到开发效率的全面解析

Mojo与C++性能深度对比:从计算密集型任务到开发效率的全面解析

1. 项目概述:为什么我们需要关注Mojo与C的性能之争? 最近在编程社区里,关于Mojo和C性能对比的讨论热度一直不减。作为一个在系统级编程和性能优化领域摸爬滚打了十多年的老码农,我深切地感受到每一次新语言的出现,都会…

2026/7/28 21:17:35 阅读更多 →
Cherno的C++教程:现代C++17/20实战与性能优化

Cherno的C++教程:现代C++17/20实战与性能优化

1. 为什么Cherno的C教程值得深挖Cherno的C系列视频在油管上已经积累了超过2000万播放量,这个由游戏引擎开发者打造的教程系列,成功打破了传统C教学的老旧模式。我第一次接触这个系列是在2018年,当时正在为公司的实时渲染系统做性能优化&#…

2026/7/28 21:17:35 阅读更多 →
JAVA毕设选题推荐:基于 SpringBoot 的轻量化校园新闻资讯社区互动平台 知识资讯聚合与论坛交流管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

JAVA毕设选题推荐:基于 SpringBoot 的轻量化校园新闻资讯社区互动平台 知识资讯聚合与论坛交流管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 21:17:35 阅读更多 →
Project Graph:免费高效的节点图绘制工具完整指南

Project Graph:免费高效的节点图绘制工具完整指南

Project Graph:免费高效的节点图绘制工具完整指南 【免费下载链接】project-graph A node-based visual tool for organizing thoughts and notes in a non-linear way. 项目地址: https://gitcode.com/gh_mirrors/pr/project-graph 你是否曾为复杂的项目关系…

2026/7/28 21:17:35 阅读更多 →
【AI智能体】Dify集成 Echarts实现数据报表展示实战详解

【AI智能体】Dify集成 Echarts实现数据报表展示实战详解

目录 引言:当AI智能体遇见数据可视化1. 环境与工具准备2. 核心思路与架构设计3. 实战步骤一:在Dify中创建数据生成节点4. 实战步骤二:前端集成与图表渲染5. 高级技巧与最佳实践 5.1 动态图表与用户交互5.2 多种图表类型5.3 错误处理与加载状…

2026/7/28 21:17:34 阅读更多 →
OpenHarness与Claude Code:AI工程与编程辅助工具对比

OpenHarness与Claude Code:AI工程与编程辅助工具对比

1. OpenHarness与Claude Code技术解析OpenHarness是近期AI工程领域出现的一个开源框架,专注于提升AI模型在实际业务场景中的部署效率。与传统的AI开发工具不同,它采用了模块化设计理念,将模型训练、测试、部署等环节解耦为可插拔组件。这种架…

2026/7/28 21:16:34 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻