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