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

建设人才库网站在线天堂おっさんとわたし

建设人才库网站,在线天堂おっさんとわたし,广州市地图,360做网站荆州在鸿蒙应用开发(基于ArkTS)中,使用 struct 封装共用模块主要涉及可复用UI组件和逻辑模块化两种场景。以下是详细解决方案: 一、UI组件封装(使用 struct) 通过 Component 装饰器创建可复用的UI组件&#xff…

在鸿蒙应用开发(基于ArkTS)中,使用 struct 封装共用模块主要涉及可复用UI组件逻辑模块化两种场景。以下是详细解决方案:


一、UI组件封装(使用 struct

通过 @Component 装饰器创建可复用的UI组件,适用于按钮、卡片等可视化元素。

示例:封装通用按钮组件
// components/CommonButton.ets
@Component
export struct CommonButton {
private btnText: string = '默认按钮'
private onTap: () =>void = () => {}build() {Button(this.btnText).width(120).height(40).backgroundColor(Color.Blue).onClick(() => {this.onTap()})}// 设置按钮文字
public setText(value: string): CommonButton {this.btnText = valuereturnthis}// 设置点击事件
public setOnClick(action: () =>void): CommonButton {this.onTap = actionreturnthis}
}
调用方式
// 使用组件
import { CommonButton } from'../components/CommonButton'@Entry
@Component
struct HomePage {build() {Column() {CommonButton().setText('立即登录').setOnClick(() => {console.log('按钮被点击')})}}
}

二、逻辑模块封装(非UI)

对于工具类、服务层等非UI逻辑,使用 ES模块化 进行封装。

示例:网络请求工具类
// utils/http.ets
import { HttpRequestOptions, HttpResponse } from'@ohos.net.http'exportclass HttpUtil {
staticasyncget(url: string): Promise<HttpResponse> {let http = http.createHttp()returnawait http.request(url, {method: http.RequestMethod.GET})}staticasync post(url: string, data: object): Promise<HttpResponse> {let http = http.createHttp()returnawait http.request(url, {method: http.RequestMethod.POST,header: { 'Content-Type': 'application/json' },extraData: JSON.stringify(data)})}
}
调用方式
import { HttpUtil } from '../utils/http'async fetchData() {try {let response = await HttpUtil.get('https://api.example.com/data')console.log('响应数据:', response.result)} catch (error) {console.error('请求失败:', error)}
}

三、进阶技巧

1. 状态共享

使用 AppStorage 实现全局状态管理:

// stores/userStore.ets
import { AppStorage } from'@ohos.application'AppStorage.SetOrCreate<string>('username', 'Guest')exportfunction getUserName(): string {
return AppStorage.Get<string>('username')
}exportfunction setUserName(name: string): void {AppStorage.Set<string>('username', name)
}
2. 组件插槽

通过 @BuilderParam 实现插槽功能:

@Component
struct CardContainer {
@BuilderParam content: () =>voidbuild() {Column() {this.content()}.padding(20).backgroundColor(Color.White).borderRadius(8)}
}// 使用
CardContainer({content: () => {Text('自定义内容').fontSize(16)}
})

四、项目结构建议

src/
├── components/      // 公共组件
├── utils/           // 工具类
├── services/        // 业务服务
├── models/          // 数据模型
├── resources/       // 静态资源
└── pages/           // 页面目录

关键点总结

  1. UI组件:使用 @Component + struct 封装带视图的模块

  2. 逻辑模块:通过类/函数 + ES Module 导出

  3. 状态管理:结合 AppStorage 或自有状态管理方案

  4. 类型安全:推荐使用TypeScript增强代码健壮性

根据实际场景选择封装方式,平衡复用性与灵活性。对于高频使用的功能模块,建议通过抽象接口实现更松散的耦合。

关注我获取更多知识或者投稿

deb24ab96d09ae90e6009d62fa31a63b.jpeg

913b79242713eac4496e044d9774063e.jpeg


文章转载自:

http://TuJT0rud.tmzLt.cn
http://Mg0zPYFY.tmzLt.cn
http://P0jUNOMQ.tmzLt.cn
http://BtN3inR4.tmzLt.cn
http://QYjFqtx7.tmzLt.cn
http://DrKl666m.tmzLt.cn
http://hSw7UFRS.tmzLt.cn
http://sShUXgnU.tmzLt.cn
http://VUCNPEt8.tmzLt.cn
http://PBtjD3kB.tmzLt.cn
http://JzmApLYn.tmzLt.cn
http://ppwClfqb.tmzLt.cn
http://mEhhVQLE.tmzLt.cn
http://eAr3dM9o.tmzLt.cn
http://Jw3vYaJZ.tmzLt.cn
http://zyTjpgpa.tmzLt.cn
http://CyVLLZVD.tmzLt.cn
http://rnzzRegm.tmzLt.cn
http://QVdq0Sca.tmzLt.cn
http://tZcVrlvh.tmzLt.cn
http://0cgcAdHZ.tmzLt.cn
http://0FvngEPo.tmzLt.cn
http://PzhnXJkQ.tmzLt.cn
http://M21nEWWw.tmzLt.cn
http://quv6l2zr.tmzLt.cn
http://KO5T1Eh2.tmzLt.cn
http://0tme8yiT.tmzLt.cn
http://bE40D3kl.tmzLt.cn
http://UClKS5zV.tmzLt.cn
http://3HDLkUP7.tmzLt.cn
http://www.dtcms.com/wzjs/628913.html

相关文章:

  • 衡水购物网站制作长沙推广软件
  • 做淘宝客网站哪个好用个人 申请域名做网站
  • 三亚h5网站定制开发公司建立一个个人介绍网站
  • ii6创建网站武夷山市建设局网站
  • 宁波网络建站模板广州网页设计html
  • 免费网站优化软件莱芜最好的网站建设公司
  • 深圳给企业做网站营销机构代码怎么填
  • 怎么建设网站平台网站怎么发邮件
  • 做自媒体一般都注册几个网站郑州企业网站排名
  • dw做的个人网站wordpress密码忘记
  • 南通做网站价格广州制片公司网站
  • 网站建设公司保定市手机建设中网站首页
  • 长沙建站模板平台合肥最新通知今天
  • 网站模板源码下载网数字营销证书
  • 网站代码的重点内容是什么万能应用商店下载
  • 东湖南昌网站建设公司东莞如何建设网站制作平台
  • 设计师配色网站成都住建局官网智慧工地
  • 网站建设公司包括哪些内容我想花钱做网站
  • 中山台州网站建设推广烟台哪儿有可以做淘宝网站的
  • 金华住房与城乡建设部网站数据分析师需要学哪些课程
  • nodejs做后端的网站请人做网站得多少钱
  • 关于建设网站的会议纪要网站建设前景怎么样
  • 企业网站开发文献综述成都房地产交易中心官网
  • 做响应式网站一般都用哪些框架社团网站建设的功能定位
  • 昆明制作手机网站千锋教育招聘
  • 网站数据中心的建设wordpress 升级失败
  • 企业网站建设试题萍乡做网站的公司有哪些
  • 赣州网站制作公司建设兼职网站目的
  • 做一个在线支付网站搜索关键词技巧
  • 自己做网站转发新闻违法么下载官方正版app