HarmonyOS NEXT
路由控制
1router的使用
router 页面准备
1被 @Entry 修饰过的组件
2在 resources/base/profile/main_pages.json 中配置过路由
router 常用方法
pushUrl - 压栈
replaceUrl - 替换页面栈
back-返回
getLength-获取页面数量
getParams-获取当前页面参数
getStats-获取当前页面状态
clear-清空之前页面栈
showAlertBeforeBackPage 开启页面返回的时候开启对话框(返回判断)
2Navigtion的使用 2.1. 基础用法
Navigation 步骤(有时间过一遍!!!)
1.创建 NavPathStack 路由栈对象
2.NavPathStack 组件绑定 NavPathStack 路由栈对象
3.通过 NavPathStack 路由栈对象跳转页面
4.创建页面文件@Builder构建函数,跟组件同NavDestination
5.再routerMap 中配置路由表,配置name、pageSpurceFile、buildFunction
2主页默认navBar

3.跳转页面不存在404
onAppear路由拦截器
TypeScript运行代码复制代码
.onAppear(() => {
navPathStack.setInterception({
//跳转前拦截
willShow: (from, to) => {
// navBar 是首页,直接退出不作处理
if (to === 'navBar') {
return
}
// 页面不存在的情况
if (to.pathInfo === undefined) {
//替换成404页面
navPathStack.replacePath({ name: 'NotFoundPage' })
}
const token = '模拟有token'
// to !== 'navBar' 排除掉 'navBar' 情况
// 跳转到 routerMapPageA 但是没有 token 的情况下,删除路由栈,跳转去登录页
if (to.pathInfo?.name === 'routerMapPageA' && !token) {
navPathStack.pop() //删除路由栈
navPathStack.pushPath({ name: 'login' }) //模拟器调换到登录页
}
},
//跳转之后拦截
didShow: () => {
}
})
})
若有收获,就点个赞吧
4413

被折叠的 条评论
为什么被折叠?



