十二、路由参数和应用数据共享
数据传递
页面跳转,使用路由传递。
// page1跳转传递参数
router.pushUrl({ url:'pages/ParamRouter2', params:{ name:'HarmonyOS4.0', age:20 } })
//page2接收参数
let param_name = router.getParams()['name'] as string
应用间数据共享
//应用下数据共享 AppStorage.SetOrCreate('appName','诗词学习')
//应用下某人需要用的的页面获取数据
let appName = AppStorage.Get('appName') as string
案例代码:
import router from '@ohos.router' @Entry @Component struct ParamRouter1 { @State message: string = '传递参数1' build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold).onClick(() => { router.pushUrl({ url:'pages/ParamRouter2', params:{ name:'HarmonyOS4.0', age:20 } }) //应用下数据共享 AppStorage.SetOrCreate('appName','诗词学习') }) } .width('100%') } .height('100%') } }
import router from '@ohos.router' //获取传递过来的参数 let param_name = router.getParams()['name'] as string //应用下某人需要用的的页面获取数据 let appName = AppStorage.Get('appName') as string @Entry @Component struct ParamRouter2 { @State message: string = 'Hello World' build() { Row() { Column() { Text(param_name) .fontSize(50) .fontWeight(FontWeight.Bold) Divider() Text(appName) } .width('100%') } .height('100%') } }
以下两种写法是一样的:
let appName = AppStorage.Get('appName') as string let appName1:string = AppStorage.Get('appName')