页面路由是指在应用程序中实现不同页面之间的跳转和数据传递
- 页面栈的最大容量上限为32个页面使用
router.clear()
方法可以清空页面栈,释放内存 - Router有两种页面跳转模式,分别是:
-
router.pushUrl()
: 目标页不会替换当前页,而是压入页面栈,因此可以用router.back()
返回当前页 -
router.replaceUrl()
: 目标页替换当前页,当前页会被销毁并释放资源,无法返回当前页
-
- Router有两种页面实例模式,分别是:
-
Standard
:标准实例模式,每次跳转都会新建一个目标页并压入栈顶。默认就是这种模式 -
Single
:单实例模式,如果目标页已经在栈中,则离栈顶最近的同Ur亿页面会被移动到栈顶并重新加载
-
使用:
- 首先要导入HarmonyOS提供的Router模块
import router from '@ohos .router';
- 然后利用router实现跳转、返回等操作
// 跳转到指定路径,并传递参数
router.pushUrl({
/*
RouterOptions
- url:目标页面路径
- params:传递的参数(可选)
*/
url:'pages/ImagePage'
params: {id: 1}
},
//页面模式:RouterMode枚举
router.RouterMode.Single
err =>{
/*
异常响应回调函数,错误码:
- 100001:内部错误,可能是染失败
- 100002:路由地址错误
- 100003:路由栈中页面超过32
*/
if(err){
console.log('路由失败。')
}
})
//获取传递过来的参数
params: any = router.getParams()
// 返回上一页
router.back()
//返回到指定页,并携带参数
router.back({
url: 'pages/Index',
params: {id: 10}
})