十二、路由参数和应用数据共享
数据传递
页面跳转,使用路由传递。
// 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')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!