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

【鸿蒙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.dtcms.com/a/280614.html

相关文章:

  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理
  • 手搓RAG
  • 知识增强型Agent开发新范式:基于ERNIE-4.5的检索增强生成架构实践
  • 力扣-使用双指针的方法的题们(持续更新中。。。
  • NipaPlay(视频播放器) v1.3.24 绿色版
  • ubuntu22.04谷歌浏览器中文输入法bug
  • 非实时的防控场景
  • 其他常见 HTTP 方法
  • redisson 设置了过期时间,会自动续期吗
  • 论文略读:QM-ARC: QoS-aware Multi-tier Adaptive Cache Replacement Strategy
  • 2025华为ODB卷-任务总执行时长-三语言题解
  • 图灵在二战期间是如何破译德国军用密码的?
  • 虚拟主机CPU占用100导致打不开的一次处理
  • 网络基础协议综合实验
  • GNU Radio连接X310运行报错
  • 【赵渝强老师】大数据交换引擎Sqoop
  • 实测两款效率工具:驾考刷题和证件照处理的免费方案
  • 【历史人物】【李白】生平事迹
  • deepseekAI对接大模型的网页PHP源码带管理后台(可实现上传分析文件)
  • 非对称加密:RSA
  • 一维泊松方程的有限元方法实现与理论分析
  • Student后台管理系统查询接口
  • 无人机GPS定位系统核心技术解析
  • Java :List,LinkedList,ArrayList
  • ov5640,ov2640,ov7670摄像头比较
  • OSPF过滤
  • 在百亿流量面前,让“不存在”无处遁形——Redis 缓存穿透的极限攻防实录
  • uniapp 微信小程序Vue3项目使用内置组件movable-area封装悬浮可拖拽按钮(拖拽结束时自动吸附到最近的屏幕边缘)
  • 解锁Python爬虫:数据获取与清洗的进阶指南
  • 运维技术教程之Jenkins的秘钥设置