HarmonyOS @State赋相同值的时候,会引起组件的重新渲染吗?

当第1次点击button时,Text组件会被重新渲染。当第2次点击button时,值与现在的值相同,此时会引起组件的重新渲染吗?

HarmonyOS
2024-09-24 11:52:00
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以通过createComponentObserver来监听组件有没有刷新,可以通过@Watch可以监听@State修饰的变量是否变化,通过以下代码可以验证,值相同时不会引起组件重新渲染:

import { inspector } from '@kit.ArkUI';  
  
@Entry  
@Component  
struct Index {  
  @State @Watch('onChange') msg: string = 'hello'  
  onChange() {  
    console.log('刷新')  
  }  
  
  aboutToAppear(): void {  
    const abserver = inspector.createComponentObserver('msg')  
    abserver.on('layout',() => {  
      console.log('布局')  
    })  
    abserver.on('draw',() => {  
      console.log('绘制')  
    })  
  }  
  
  build() {  
    Column() {  
      Text(this.msg).id('msg')  
      Button('点击').onClick(() => {  
        this.msg = '12345'  
      })  
    }  
  }  
}
分享
微博
QQ
微信
回复
2024-09-24 17:35:31
相关问题
HarmonyOS 怎么给类属性默认
825浏览 • 1回复 待解决
HarmonyOS " @State可以修饰ArrayList"
388浏览 • 1回复 待解决
升级IDEA版本引起引发错误
350浏览 • 1回复 待解决
在Stage模型下如何主动重新渲染UI
3437浏览 • 1回复 已解决