harmony学习LocalStorage在UIAbility组件和页面组件之间的应用

2024-03-17 15:07 harmony学习LocalStorage在UIAbility组件和页面组件之间的应用已关闭评论

需求

当前app可以部署到很多个客户的环境中,每个客户服务器地址是不同的,app支持输入新的服务器地址,保存后应用新地址。

harmony开发新版本app

应用鸿蒙ArkTS开发一套app,学习LocalStorage页面级UI状态存储。

UIAbility使用LocalStorage定义默认的服务器地址,并传递到所有页面,在设置页面支持输入新地址修改后更新UIAbility中的默认地址,这样所有界面达到使用新地址。

UIAbility页面定义默认server_ip

Index页面接收LocalStorage默认值

//接收UIAbility定义的LocalStorage默认值
let storage = LocalStorage.GetShared()

@Entry(storage)
@Component
struct DzSetting {
  //在页面或组件访问LocalStorage实例使用LocalStorageProp或
  @LocalStorageProp('server_ip') server:string=''

  build() {
    Column() {
      Row() {
        Text('server')
          .textAlign(TextAlign.End)
          .width('20%')
          .height('100%')

        //显示在UIAbility设置的默认值
        TextInput({ placeholder: '请输入服务器地址',text:this.server })
          .layoutWeight(1)
          .height('100%')
          .onChange((text)=>{
            //使用新输入的地址替换默认值
            this.server=text
          })
      }.width('100%')
      .height(80)
      .padding({bottom:12})
      .margin(10)
    }.width('100%')
    .height('100%')
  }
}

创建LocalStorage实例的时候就写入默认值,因为默认值可以作为运行异常的备份,也可以用作页面的单元测试。

总结

在页面中获取LocalStorage实例

let storage = LocalStorage.GetShared()

将LocalStorage实例传入页面

let storage = LocalStorage.GetShared()
@Entry(storage)
//...

获取LocalStorage实例默认值

@LocalStorageProp('server_ip') server:string=''

或者
@LocalStorageLink('server_ip') server:string=''

LocalStorageProp和LocalStorageLink区别
LocalStorageProp订单的变量,变量值改变不会同步会UIAbility中的默认值

相反,LocalStorageLink则会同步修改后的值。

当前文章价值9.9元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/3146.html ,谢谢支持!

资源分享

分类:harmony 标签:
Linux自动化脚本命令 Linux自动化脚本命令
Android SDK “Error when loading the SDK” Android SDK “Error when
浅谈Java继承 浅谈Java继承
WordPress文章分页插件:Multi-page Toolkit WordPress文章分页插件:Mult

评论已关闭!