HarmonyOS(35) @State使用注意事项

@State使用注意事项

注意事项

HarmonyOS鸿蒙学习笔记(5)@State作用说明和简单案例一文中简单介绍了@State的使用方法,但是@State装饰器使用有一些注意事项:在应用开发中,应避免在循环逻辑中频繁读取状态变量,而是应该放在循环外面读取。

反例

java 复制代码
@Entry
@Component
struct Index {
  @State message: string = '';

  build() {
    Column() {
      Button('点击打印日志')
        .onClick(() => {
          for (let i = 0; i < 10; i++) {
            //循环体中使用message
            hilog.info(0x0000, 'TAG', '%{public}s', this.message);
          }
        })
        .width('90%')
        .backgroundColor(Color.Blue)
        .fontColor(Color.White)
        .margin({
          top: 10
        })
    }
    .justifyContent(FlexAlign.Start)
    .alignItems(HorizontalAlign.Center)
    .margin({
      top: 15
    })
  }
}

正例

java 复制代码
@Entry
@Component
struct Index {
  @State message: string = '';

  build() {
    Column() {
      Button('点击打印日志')
        .onClick(() => {
          //循环体外提前访问message变量
          let logMessage: string = this.message;
          for (let i = 0; i < 10; i++) {
            hilog.info(0x0000, 'TAG', '%{public}s', logMessage);
          }
        })
        .width('90%')
        .backgroundColor(Color.Blue)
        .fontColor(Color.White)
        .margin({
          top: 10
        })
    }
    .justifyContent(FlexAlign.Start)
    .alignItems(HorizontalAlign.Center)
    .margin({
      top: 15
    })
  }
}

参考资料

状态管理优秀实践

相关推荐
zhanshuo2 小时前
HarmonyOS 分布式神器!手把手教你用 ArkTS 写出全屋联动智能助手
harmonyos
zhanshuo2 小时前
让你的鸿蒙应用“离线也能飞”——ArkTS 存储机制实战
harmonyos
AORO20257 小时前
国产智能三防手机哪款最好?这款支持单北斗、5G-A、IP68
5g·安全·智能手机·信息与通信·harmonyos
啥都不会的码仔9 小时前
鸿蒙ArkTS日期时间处理:全面解析DateUtil工具类
harmonyos·arkts
城中的雾10 小时前
HarmonyOS 5 应用拉起系列(二):如何拉起微信小程序
harmonyos
AORO202512 小时前
三防平板电脑是什么?这款三防平板支持红外测温!
5g·安全·智能手机·电脑·harmonyos
AlbertZein13 小时前
HarmonyOS 5 一杯冰美式的时间 -- MVVM?
harmonyos
zhanshuo1 天前
HarmonyOS 多屏适配最佳实践:基于 ArkUI 的响应式 UI 方案
harmonyos
zhanshuo1 天前
玩转 ArkUI 拖拽功能:5 分钟搞定拖放交互与场景实战
harmonyos
shenshizhong1 天前
鸿蒙南向开发 编写一个简单子系统
前端·harmonyos