HarmonyOS 通过AppStorage定义组件共享数据

我们实现组件间共享数据可以通过 AppStorage
他下面有两个函数可以实现这一功能
SetOrCreate和Set

AppStorage.SetOrCreate("dataMap",{
    name:"小猫猫"
})
AppStorage.Set("dataMap",{
    name:"小猫猫"
})

Set是 如果键值存在 他会覆盖 但是 如果键值不存在 就会赋值不上
SetOrCreate则是 如果没有就赋值 如果有了 就修改

所以这里我们肯定选择更安全的 SetOrCreate
然后 我们可以通过 AppStorage.Get(“键名”) 获取数据

这里 我们可以写一个案例
index组件代码如下

import router from '@ohos.router'
@Entry
@Component
struct Index {

  build() {
    Row() {
      Column() {
        Button("赋值").onClick(()=>{
          AppStorage.SetOrCreate("dataMap",{
            name:"小猫猫"
          })
          router.pushUrl({
            url: "pages/AppView",
            params: {
              name: "小猫猫",
              age: 20
            }
          })
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

我们设置了一个button按钮 点击时 用 AppStorage.SetOrCreate 存入一个键值对
键为 dataMap 值为一个对象 里面有一个name字段 值为 小猫猫

然后 跳转向 AppView

AppView 编写代码如下

@Entry
@Component
struct AppView {
  build() {
    Row() {
      Column(){
        Button("获取").onClick(()=>{
          let data:object = AppStorage.Get("dataMap")
          // @ts-ignore
          console.log(data.name);
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

这里 我们定义了一个data 类型为object 通过 AppStorage.Get 获取键为 dataMap的值
然后 用 console.log将对象的 name字段输出在控制台上

我们index组件 开启预览器 点击这里赋值 并且跳转向下一个界面
在这里插入图片描述
到了第二个界面 点击获取 控制台输出明显就是拿到了
在这里插入图片描述

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HarmonyOS华为公司推出的一款全场景分布式操作系统。分布式是指将多个计算设备、传感器和终端设备连接起来,通过协同工作实现更高效、便捷和智能的功能。HarmonyOS通过分布式能力整合了华为的多种设备和服务,可以在不同硬件设备之间实现互联互通,提供统一的用户体验。 首先,HarmonyOS具备分布式架构,可以将不同设备连接起来无缝协同工作。用户只需通过一台设备,就可管理和操作其他设备,实现多屏互动和内容共享。例如,用户可通过智能手机控制家中的电视、空调和摄像头等设备,实现智能家居的便捷控制。 其次,HarmonyOS拥有分布式数据管理能力。不同设备产生的数据可以在云端进行存储、分析和加工,并通过智能算法实现数据共享和优化。例如,智能手表可以同步用户的运动数据到云端,再通过智能手机或电视展示和分析运动成果。 再者,HarmonyOS还具备分布式安全和隐私保护能力。在设备之间进行数据传输时,HarmonyOS采用了多重加密和认证技术,确保数据的安全性和完整性。同时,用户的隐私也得到充分尊重和保护,不会因为设备的连接而泄露个人信息。 最后,HarmonyOS提供了开放的分布式开发工具,使开发者能够更方便地开发分布式应用。开发者可以利用HarmonyOS提供的API和框架,快速构建出支持不同设备之间的数据交互和功能共享的应用程序。 总之,HarmonyOS分布式能力的出现,使得不同设备之间的有机连接成为可能,为用户带来更多便利和智能化体验。同时,分布式也为开发者提供了更广阔的应用开发空间,推动了数字智能化的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值