ArkUI 的导航是怎么做的呀?我想实现页面跳转, 怎么操作呢?
rt
在 ArkUI 中实现页面跳转主要通过路由(router)实现,以下是两种常用方式:
基础路由跳转(推荐)
// 源页面跳转代码
import router from '@ohos.router';
// 跳转到目标页面
router.pushUrl({
url: 'pages/TargetPage', // 目标页面路径
params: { id: 123 } // 可选参数传递
}).catch(err => console.error('跳转失败', err));
// 返回上一页
router.back();
目标页面接收参数
// TargetPage.ets
import router from '@ohos.router';
@Entry
@Component
struct TargetPage {
@State message: string = '';
onPageShow() {
const params = router.getParams(); // 获取参数
this.message = `收到参数:${params?.id}`;
}
build() {
Column() {
Text(this.message)
Button('返回').onClick(() => router.back())
}
}
}
配置文件需添加路由声明(config.json):
{
"module": {
"pages": [
"pages/IndexPage",
"pages/TargetPage"
]
}
}
进阶用法:
导航组件(适用于复杂布局):
// 使用 Tabs 导航组件
@Entry
@Component
struct MainPage {
@State currentIndex: number = 0;
build() {
Tabs({ barPosition: BarPosition.End }) {
TabContent() {
FirstPage()
}.tabBar('首页')
TabContent() {
SecondPage()
}.tabBar('详情')
}
}
}
路由模式选择:
router.pushUrl({
url: 'pages/DetailPage',
params: { data: 'test' },
mode: router.RouterMode.Standard // 或 Single(单例模式)
});
注意要点:
更复杂的导航场景建议使用 Navigation 组件或自定义导航容器,具体可参考官方文档中的导航模式章节。
1 回答751 阅读✓ 已解决
1 回答739 阅读
1 回答717 阅读
1 回答673 阅读
1 回答639 阅读
643 阅读
407 阅读
ArkUI 提供了 Navigator 组件用于页面导航,可以使用 Navigator.pushUrl() 方法跳转到新的页面,使用 Navigator.pop() 方法返回上一页。 例如: