路由
与
vue
的router路由有点相似
- 页面栈上限最多支持32个页面,可以通过
router.clear()
方法可以清空页面栈来释放内存
跳转方式
Router有两种跳转方式:
router.pushUrl
和uniapp的uni.navigateTo
相似,router.ReplaceUrl
和uni.redirectTo
相似
router.pushUrl()
:目标页不会替换当前页,而是压入页面栈,因此可以用router back()
返回当前页router.ReplaceUrl()
:目标页会替换当前页,当前页会被销毁并释放资源,无法返回当前页
示例模式
Standard
:标准实例模式,每次调整都会新建一个目标页并压入栈顶。默认就是这种模式Single
:单实例模式,如果目标页已经在栈中,则离栈顶最近的同Url页面会被移动到栈顶并重新加载
使用
- 导入
router
模块
import router from '@ohos.router';
- 使用API
router.pushUrl(
{
url:'pages/testPage',
params:{msg:'传参'}
},
router.RouterMode.Single,
err=>{
if(err){
//跳转错误...
}
}
)
tip:
路由记得需要配置
//需要在base/main_pages.json配置
{
"src":[
"page/Index",
"page/testPage"
]
}
- 拓展
二次退出确认API如下
router.showAlertBeforeBackPage({message:'内容未保存,是否继续退出?'})
//返回
router.back()
以上是路由的基本使用,over~