当前位置: 首页 > ai >正文

【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(二):封装自定义可复用组件

组件的可复用性,对我们开发的app质量影响很大,看看鸿蒙中如何封装这种组件

实现效果

在这里插入图片描述

代码实现

  • 局部封装
@Builder
titleBuilder(title:string = '默认标题') {// @Builder装饰此函数,使其能以链式调用的方式配置并构建Text组件Row(){Text(title).fontSize(30).fontWeight(FontWeight.Bold).layoutWeight(1)Image($r('app.media.more')).width(24)}.width('100%').height(50).padding({left:10})
}
  • 页面使用
@Entry
@ComponentV2
struct  ThirdPage{@BuildertitleBuilder(title:string = '默认标题') {// @Builder装饰此函数,使其能以链式调用的方式配置并构建Text组件Row(){Text(title).fontSize(30).fontWeight(FontWeight.Bold).layoutWeight(1)Image($r('app.media.more')).width(24)}.width('100%').height(50).padding({left:10})}isFlag:Boolean = falsearr:number[] = [1,2,3,4,5]@Local count:number = 0build() {Column(){Column(){this.titleBuilder()this.titleBuilder('歌单推荐')}.width('100%')}}
}

这种封装的是局部可复用的组件

  • 全部封装
@Builder
function titleBuilder(title:string = '默认标题') {// @Builder装饰此函数,使其能以链式调用的方式配置并构建Text组件Row(){Text(title).fontSize(30).fontWeight(FontWeight.Bold).layoutWeight(1)Image($r('app.media.more')).width(24)}.width('100%').height(50).padding({left:10})
}
  • 页面使用
@Builder
function titleBuilder(title:string = '默认标题') {// @Builder装饰此函数,使其能以链式调用的方式配置并构建Text组件Row(){Text(title).fontSize(30).fontWeight(FontWeight.Bold).layoutWeight(1)Image($r('app.media.more')).width(24)}.width('100%').height(50).padding({left:10})
}@Entry
@ComponentV2
struct  ThirdPage{isFlag:Boolean = falsearr:number[] = [1,2,3,4,5]@Local count:number = 0build() {Column(){Column(){titleBuilder()titleBuilder('歌单推荐')}.width('100%')}}
}

这样我们就实现了全局封装的可复用的组件

http://www.xdnf.cn/news/15391.html

相关文章:

  • 深入解析环境变量:从基础概念到系统级应用
  • kdump生成转储文件调试内核崩溃、死机
  • Java 栈和队列
  • linux 系统依赖包查询命令汇总
  • IPM31主板E3300usb键盘鼠标安装成功Sata接口硬盘IDE模式server2003-nt-5.2.3790
  • python 的包管理工具pip poetry、conda 和 pipenv 使用和安装
  • C 语言部分操作符详解 -- 进制转换,原码、反码、补码,位操作符,逗号表达式,操作符的优先级和结合性,整型提升,算术转换
  • 2025年小目标检测分享:从无人机视角到微观缺陷的创新模型
  • 【PTA数据结构 | C语言版】二叉树前序序列化
  • Python初学者笔记第十二期 -- (集合与字典编程练习题)
  • Vim多列操作指南
  • TCP可靠性设计的核心机制与底层逻辑
  • next.js 登录认证:使用 github 账号授权登录。
  • uni-app+vue3 来说一说前端遇到跨域的解决方案
  • 全连接神经网络
  • 10分钟搞定!Chatbox+本地知识库=你的私人语音导师:企业级全栈实现指南
  • 自动微分模块
  • JAR 包冲突排雷指南:原理、现象与 Maven 一站式解决
  • 机载激光雷达目标识别:从点云到凝视成像的算法全景
  • Datawhale AI夏令营——用户新增预测挑战赛
  • xss-lab靶场通关
  • 苦练Python第18天:Python异常处理锦囊
  • 从 JSON 到 Python 对象:一次通透的序列化与反序列化之旅
  • 云原生技术与应用-Containerd容器技术详解
  • Android系统的问题分析笔记 - Android上的调试方式 bugreport
  • RAG索引流程中的文档解析:工业级实践方案与最佳实践
  • iOS —— 网易云仿写
  • 大数据系列之:通过trino查询hive表
  • 直播推流技术底层逻辑详解与私有化实现方案-以rmtp rtc hls为例-优雅草卓伊凡
  • 在Linux下git的使用