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

参考资料

状态管理优秀实践

相关推荐
HarmonyOS小助手1 小时前
用 DevEco Studio 模拟器这些能力 没真机也能高效调测鸿蒙原生应用
harmonyos·鸿蒙·deveco studio·harmonyos next
HarmonyOS_SDK5 小时前
【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
harmonyos
_苏歌6 小时前
HarmonyOS基本的应用的配置
harmonyos·鸿蒙
SuperHeroWu78 小时前
【HarmonyOS 5】鸿蒙发展历程
华为·harmonyos
青年夏日科技工作者1 天前
Android WebView加载h5打开麦克风与摄像头的权限问题
android·数码相机·harmonyos
~央千澈~1 天前
鸿蒙系统被抹黑的深层解析:技术、商业与地缘政治的复杂博弈-优雅草卓伊凡
华为·harmonyos
马剑威(威哥爱编程)1 天前
HarmonyOS 5.0 低时延音视频开发
华为·音视频·harmonyos
lurw9261 天前
HarmonyOS Device Connector(hdc)
华为·harmonyos
HarmonyOS_SDK1 天前
深度解析用户意图,让设备真正听懂需求
harmonyos
叫我王富贵i1 天前
0基础学习鸿蒙开发-HarmonyOS4
学习·华为·harmonyos·arkts