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
    })
  }
}

参考资料

状态管理优秀实践

相关推荐
zhujian826375 分钟前
十六、【鸿蒙 NEXT】如何申请权限
华为·harmonyos·权限申请
汉堡黄•᷄ࡇ•᷅15 分钟前
鸿蒙开发:案例集合List:ListItem拖拽(交换位置,过渡动画)
harmonyos·鸿蒙·鸿蒙系统
食品一少年21 分钟前
【Day11】开源鸿蒙复盘(2)
华为·开源·harmonyos
malajisi0127 分钟前
鸿蒙PC开发笔记一:HarmonyOS PC 命令行适配指南(Mac 版)
笔记·macos·harmonyos·harmony·鸿蒙pc·harmony pc
zhujian8263744 分钟前
【鸿蒙 NEXT】系统设置中各个页面的uri
华为·harmonyos·系统设置uri
食品一少年1 小时前
【Day11】开源鸿蒙复盘(1)
华为·harmonyos
后端小张1 小时前
【鸿蒙2025领航者闯关】鸿蒙OS在工业控制领域的技术突破与实战应用
5g·华为·云计算·harmonyos·鸿蒙·鸿蒙系统·鸿蒙2025领航者闯关
盐焗西兰花10 小时前
鸿蒙学习实战之路 - 图片预览功能实现
学习·华为·harmonyos
盐焗西兰花10 小时前
鸿蒙学习实战之路:HarmonyOS 布局性能优化最佳实践
华为·性能优化·harmonyos
xiaocao_102317 小时前
鸿蒙手机上使用的备忘录怎么导出来?
华为·智能手机·harmonyos