HarmonyOS 鸿蒙Next OpenHarmony应用开发中的页面数据跳转,正常使用什么方式存取数据?
HarmonyOS 鸿蒙Next OpenHarmony应用开发中的页面数据跳转,正常使用什么方式存取数据? 如题,OpenHarmony应用开发中的页面数据跳转,正常使用什么方式存取数据?
目前使用的是 HashMap;这个方式有个缺点,就是需要定时、定点的去清理具体的key;
其他的数据容器存储方式也是类似情况;或者就是用本地数据库,但是作用域只在应用页面跳转的数据使用本地数据库又没有必要;
不知道有没有其他好点的方式做页面之间的数据跳转。
更多关于HarmonyOS 鸿蒙Next OpenHarmony应用开发中的页面数据跳转,正常使用什么方式存取数据?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好,如果只是在页面跳转时传输数据的话,可以考虑一些两种便捷的数据传输方式:
- 使用Navigator组件跳转页面时,设置其params属性进行数据绑定,代码如下:
Navigator({
target: 'pages/FoodDetail'
}) {
Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
Text(this.foodItem.name)
.fontSize(14)
.flexGrow(1)
Text(this.foodItem.calories + ' kcal')
.fontSize(14)
}
.height(64)
}
.params({ foodId: this.foodItem })
.margin({ right: 24, left: 32 })
- 使用 ‘@ohos.router’ 的 API 跳转页面携带参数,代码参考如下:
Column() {
Row() {
Image(this.foodItem.image)
.objectFit(ImageFit.Contain)
.height(152)
.width('100%')
}.backgroundColor('#FFf1f3f5')
}
.height(184)
.width('100%')
.onClick(() => {
router.push({ url: 'pages/FoodDetail', params: { foodId: this.foodItem } })
})
以上两种方式在目标页面均使用以下方式接收数据:
this.foodItem = router.getParams()["foodId"];
更多关于HarmonyOS 鸿蒙Next OpenHarmony应用开发中的页面数据跳转,正常使用什么方式存取数据?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个之前也用过,不过路由api的方式带参数很不方便,A-B-C,A页面到C页面的数据每次都需要在路由参数里配置数据参数,不太适用;,
LocalStorage呢,这个是应用程序中的存储单元,生命周期跟随其关联的Ability,Ability中的所有页面可以直取直用,数据也不需要手动清理,关闭Ability即销毁。
参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/ui-ts-local-storage.md
谢谢,不过storage方式,官网提示:从API Version 9开始,该接口不再维护;