《鸿蒙第一行代码》第十二课 状态管理StorageLink

@StorageLink(‘key’)

  • 1、数据状态全局化(不管是组件之间,还是页面之间,都会相互影响),不用传值了,只要一处修改了,其他地方也会修改
  • 2、多个初始化,只认第一个初始化。

看简单示例代码:

@Entry
@Component
struct StorageLink_Modifier {

  @StorageLink('time') time2: string = "abcdefefwefwewee";
  @StorageLink('time') time1: string = "1648643734154"; //以第一个初始值为准,这里就是以time2值为准

  build() {
    Column({space: 10}) {

      Text(`父组件【${this.time2}`)
        .fontSize(20)
        .backgroundColor(Color.Pink)

      StorageLinkItem();
      StorageLinkItem();

      Button('更新时间')
        .onClick(() => {
          this.time2 = new Date().getTime().toString();
        })
    }
    .width('100%')
    .height('100%')
    .padding(10)
  }
}

@Component struct StorageLinkItem {

  @StorageLink('time') time: string = "OpenHarmony";

  build() {
    Text(`子组件【${this.time}`)
      .fontSize(20)
      .backgroundColor(Color.Grey)
      .onClick(() => {
        this.time = new Date().getTime().toString();
      })
  }
}
《鸿蒙第一行代码》项目代码结构图:

在这里插入图片描述
有需要《鸿蒙第一行代码》项目源码的私信我,我每天都看私信的

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐