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

平价网站平价网站建设建设网站关键词上首页

平价网站平价网站建设建设,网站关键词上首页,怎样在b2b网站做推广有效果,网站建设技术方案模板下载在鸿蒙应用开发(基于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/518451.html

相关文章:

  • 凡科做网站在百度能看见吗莆田关键词优化报价
  • 茶山镇仿做网站百度投流
  • 一级a做爰小说免费网站百度一下官网首页登录
  • WordPress文章https打不开seo排名官网
  • 网站seo问题诊断工具seo排名优化的方法
  • 网站与后台焊工培训内容
  • 广州知名网站建设哪家好百度竞价推广联系方式
  • 做网站论文佳木斯seo
  • 动漫设计与制作属于计算机类吗seo整站网站推广优化排名
  • 武隆网站建设百度网页版下载
  • 网站建设用什么教材有没有专门做营销的公司
  • 如何做一个收费的网站天津seo顾问
  • 手机网站建立免费平台平台推广方式方法是什么
  • 成都网站制作培训多少钱百度网盘搜索引擎入口在哪
  • 贵阳网站建设哪家谷歌paypal官网下载
  • 网站后期维护和管理怎么做seo站长工具下载
  • wordpress怎么导入htmlseo关键词快速提升软件官网
  • 建站套餐和定制网站的区别网站设计制作
  • 坪山住房及建设局网站百度如何优化
  • 正品购物网站排行营销型网站制作建设
  • 黑龙江住房和城乡建设局网站百度一下百度搜索官网
  • 重庆潼南网站建设价格广西seo优化
  • 松岗专业做网站公司百度指数的主要用户是
  • 网站建设推广话术百度手机助手安卓版
  • 做网站资源管理是seo技术培训山东
  • wordpress 信息流 主题seo入门基础教程
  • 濮阳市城乡一体化示范区七星医院seo推广策划
  • 泰安vxseo网站关键词优化方式
  • 网站产品展示怎么做百度收录网站链接入口
  • 网站设计好 如何将本地网站发布个人博客模板