第七章HarmonyOS NEXT 鸿蒙router和Navigtion(适用API12以上版本)

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

image.png


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: () => {

}

})

})

若有收获,就点个赞吧

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值