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

平价网站平价网站建设建设成都计算机培训机构排名前十

平价网站平价网站建设建设,成都计算机培训机构排名前十,wordpress如何搭建博客,域名解析错误连不上网在鸿蒙应用开发(基于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://www.dtcms.com/wzjs/8748.html

相关文章:

  • 怎么上传网站图片的链接快推广app下载
  • 海南专业网站建设定制怎么制作网站教程
  • 东营网站制作搜索引擎营销与seo优化
  • wordpress 播客网站百度发视频步骤
  • 手机网站数据加载软件开发网
  • 衡水网站建设找谁建立网站平台需要多少钱
  • 棋牌游戏网站开发百度人工客服
  • wordpress官网打不开网络优化的流程
  • 外贸建站模板下载汽车网站建设
  • 的wordpress主机名知乎关键词优化软件
  • 顺德做网站公司哪家好广州 竞价托管
  • 科技流小说aso具体优化
  • 网站备案号 如何添加平台推广广告宣传词
  • 动态网站建设常用技术不包括查看网站流量的工具
  • 宿迁建站网电商网站订烟平台官网
  • 企业网站建设需求广告推送平台
  • 餐饮公司网站模板如何让新网站被收录
  • wordpress 在线文章插件seo顾问服务福建
  • 北京城乡和住房建设委员会网站关键词排名优化公司
  • 有私人做网站的吗网站推广策划书
  • 网站排名靠前怎么做口碑最好的it培训机构
  • 网站的标题与关键词搜云seo
  • 网站建设seo优化推广网站推广120种方法
  • 哪个网站建设好台州seo排名公司
  • 网站做搜索引擎的作用是什么百度答主招募入口官网
  • 做外单要上什么网站网络营销计划的七个步骤
  • 行业 专业 网站建设百度客服24小时人工服务
  • 响应式网站好么搜索引擎推广的优势
  • wordpress4.5.2主题seo优化方案报价
  • 漳州做网站建设bt磁力猫