深圳网站设计招聘,北京千锋教育,网站建设账务处理属于什么费用,菏泽做网站电话状态管理最佳实践 1、避免在循环中访问状态变量1.1 反例1.2 正例 2、避免不必要的状态变量的使用3、建议使用临时变量替换状态变量3.1 反例3.2 正例 4、参考资料 1、避免在循环中访问状态变量
在应用开发中#xff0c;应避免在循环逻辑中频繁读取状态变量#xff0c;而是应该… 状态管理最佳实践 1、避免在循环中访问状态变量1.1 反例1.2 正例 2、避免不必要的状态变量的使用3、建议使用临时变量替换状态变量3.1 反例3.2 正例 4、参考资料 1、避免在循环中访问状态变量
在应用开发中应避免在循环逻辑中频繁读取状态变量而是应该放在循环外面读取
1.1 反例
Entry
Component
struct Index {State message: string ;build() {Column() {Button(点击打印日志).onClick(() {for (let i 0; i 10; i) {//循环体中使用messagehilog.info(0x0000, TAG, %{public}s, this.message);}}).width(90%).backgroundColor(Color.Blue).fontColor(Color.White).margin({top: 10})}}
}
1.2 正例
将上述代码改成如下在for循环外部定义一个局部变量然后在for循环内部使用该变量。
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})}}
}
2、避免不必要的状态变量的使用
没有关联任何UI组件的状态变量不应该定义为状态变量否则读写状态变量都会影响性能。仅有读取操作没有修改过没有修改过的状态变量不应该定义为状态变量否则读状态变量会影响性能。
总之没有关联任何UI组件的状态变量和没有修改过的状态变量不应该定义为状态变量直接使用一般变量即可否则会影响性能。
3、建议使用临时变量替换状态变量
状态变量发生变化时ArkUI会查询依赖该状态变量的组件并执行依赖该状态变量的组件的更新方法完成组件渲染的行为。通过使用临时变量的计算代替直接操作状态变量可以使ArkUI仅在最后一次状态变量变更时查询并渲染组件减少不必要的行为从而提高应用性能。
3.1 反例 State message: string ;appendMsg(newMsg: string) {//直接操作状态变量效率不高this.message newMsg;this.message ;;this.message br/;}3.2 正例 State message: string ;appendMsg(newMsg: string) {//创建一个临时变量代替直接使用状态变量let message this.message;message newMsg;message ;;message br/;this.message message;}4、参考资料
状态管理最佳实践 HarmonyOS(35) State使用注意事项