鸿蒙HarmonyOS 4-页面路由
页面路由router
- 页面路由router是指在应用程序中实现不同页面之间的跳转和数据传递 
- 页面保留在页面栈,先进后出,所以最先打开的在最前面
- 页面栈的最大容量上限是32个页面,使用router.clear()方法可以清空页面栈,释放内存
- Router有两种页面跳转模式,分别是:
- router.pushUrl():目标页不会替换当前页,而是压入页面栈,因此可以用- router.back()返回当前页
- router.replaceUrl():目标页替换当前页,当前页会被销毁并释放资源,无法返回当前页
- Router有两种页面实例模式,分别是:
- Standard:标准实例模式,每次跳转都会建立一个目标页并压入栈顶。默认就是这个模式
- single:单实例模式,如果目标页已经存在,则将离栈顶最近的同Url页面移至栈顶并重新加载
用法
- 首先要导入HarmonyOS提供的Router模块:1 import router from '@ohos.router'; 
- 然后利用router实现跳转、返回等操作:1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25//跳转页 
 router.pushUrl(
 {
 url: 'pages/PropPage', //目标页面路径
 params: {id: 1} //传递的参数(可选)
 },
 router.RouterMode.Single, //页面模式
 err => {
 if(err){ //异常响应
 console.log(`路由失败 errCode: ${err.code} errMsg: ${err.message}`)
 } //错误码:100001:内部错误,可能是页面渲染失败;100002:路由地址错误;100003:路由栈页面已满
 })
 //目标页
 params: any = router.getParams() //获取传递的参数
 router.showAlertBeforeBackPage({
 message: '还未保存哦,确定要返回吗?'
 }) //返回提示弹窗,如果点取消,则返回操作会被终止。
 router.back() //返回上一页
 router.back( //返回参数
 {
 url: 'xxx'
 params: {id: 010}
 }
 )
- 在base/main_pages.json文件当中,记得添加该目标页地址 
 评论
