路由跳转与路由栈
HarmonyOS路由跳转与路由栈详解:router.pushUrl、replaceUrl。
1. 页面跳转
import router from '@ohos.router';
// 压栈跳转(可返回)
router.pushUrl({
url: 'pages/Detail',
params: { id: 123 },
});
// 替换跳转(不可返回)
router.replaceUrl({
url: 'pages/Login',
});
// 返回
router.back();
router.back({ url: 'pages/Index' }); // 返回到指定页面
2. 路由栈
pushUrl: [A] → [A, B] → [A, B, C]
replaceUrl: [A, B] → [A, C]
back: [A, B, C] → [A, B]
3. 获取参数
@Entry
@Component
struct Detail {
params: any = router.getParams()
build() {
Text(`ID: ${this.params?.id}`)
}
}
4. 路由模式
router.pushUrl(
{
url: 'pages/Detail',
},
router.RouterMode.Standard
); // 标准模式(默认)
router.pushUrl(
{
url: 'pages/Detail',
},
router.RouterMode.Single
); // 单例模式(栈中已存在则移到栈顶)