前言

随着 HarmonyOS NEXT 正式进入快速发展阶段,越来越多开发者开始接触 ArkTS 开发。

很多刚从 Java、Kotlin、Vue、React 转过来的开发者,经常会遇到这样的问题:

  • 状态更新为什么不生效?
  • @State 和 @Prop 到底有什么区别?
  • 页面数据如何优雅传递?
  • List 为什么会卡顿?
  • 页面销毁后为什么内存没有释放?

本文结合实际项目经验,总结10个高频开发技巧,希望帮助大家快速提升鸿蒙开发效率。


1. 优先使用@Builder封装重复UI

很多新手喜欢复制粘贴代码:


Row() {
  Image($r('app.media.avatar'))
    .width(40)
    .height(40)

  Text('张三')
}

如果项目里出现几十次:


@Builder
UserItem(name: string) {
  Row() {
    Image($r('app.media.avatar'))
      .width(40)
      .height(40)

    Text(name)
      .margin({ left: 10 })
  }
}

调用:


this.UserItem("张三")

优势:

  • 提高复用性
  • 降低维护成本
  • 提升代码可读性

2. List必须配置LazyForEach

错误写法:


ForEach(this.dataList,(item)=>{
  ListItem(){
    Text(item.name)
  }
})

数据量超过500条时容易卡顿。

推荐:


LazyForEach(
  this.dataSource,
  (item) => {
    ListItem() {
      Text(item.name)
    }
  }
)

原因:

LazyForEach采用懒加载机制。

只渲染当前可见区域。

企业项目基本标配。


3. 善用状态管理

很多同学分不清:


@State
@Prop
@Link
@Provide
@Consume

记住一个口诀:


页面内部:State

父传子:Prop

双向绑定:Link

跨层传递:Provide + Consume

实际开发中:

80%场景:


@State

15%场景:


@Prop
@Link

5%场景:


@Provide
@Consume

4. 网络请求统一封装

不要在页面中直接写:


axios.get(...)

推荐:


api/
├── userApi.ts
├── orderApi.ts
├── goodsApi.ts

例如:


export function getUserInfo() {
  return request({
    url:'/user/info',
    method:'GET'
  })
}

页面:


getUserInfo()

优点:

  • 统一维护
  • 方便切换接口
  • 支持统一拦截器

5. 页面参数统一管理

跳转:


router.pushUrl({
  url:'pages/Detail',
  params:{
    id:1001
  }
})

接收:


let params = router.getParams()

推荐建立:


types/router.ts

统一定义参数类型。

避免大型项目参数混乱。


6. 图片资源不要全部放本地

很多项目把所有图片放:


resources

最终导致:


HAP包体积暴涨

推荐:


图标 -> 本地

商品图 -> OSS

Banner -> CDN

企业项目基本如此。

启动速度更快。


7. Toast统一封装

不要每个页面都写:


promptAction.showToast({
  message:'成功'
})

统一:


Toast.show("成功")

后续切换样式无需修改业务代码。


8. 页面离开及时释放资源

例如:


Web组件

视频播放器

地图组件

定时器

页面退出:


aboutToDisappear() {
  clearInterval(this.timer)
}

否则容易:


内存泄漏

页面卡顿

耗电增加

9. 善用TypeScript类型约束

不要:


let user:any

推荐:


interface User {
  id:number
  name:string
  age:number
}

使用:


let user:User

好处:

  • 自动提示
  • 编译检查
  • 降低Bug率

10. 建立项目统一目录规范

推荐企业级结构:


src
│
├── pages
│
├── components
│
├── api
│
├── utils
│
├── model
│
├── constants
│
├── common
│
├── router
│
└── resources

这样即使项目达到:


100+

页面

50+

接口

依然容易维护。


企业项目开发建议

很多开发者刚接触鸿蒙时喜欢:


功能先实现再说

结果:


代码越来越乱

组件越来越难维护

项目越来越难扩展

正确思路应该是:


组件化

模块化

类型化

统一封装

统一规范

这也是目前大部分 HarmonyOS NEXT 企业项目采用的开发模式。


总结

ArkTS 并不难,真正难的是工程化思维。

掌握本文这10个开发技巧后,你会发现:

✅ 页面开发速度更快

✅ 代码结构更清晰

✅ 项目更容易维护

✅ 更接近企业级开发标准

对于刚入门 HarmonyOS NEXT 的开发者来说,与其学习大量零散知识,不如先养成良好的开发习惯。

因为真正拉开开发者差距的,往往不是会不会写页面,而是会不会写一个能长期维护的项目。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐