写点什么

鸿蒙 NEXT 开发 - 页面路由

作者:东林知识库
  • 2025-03-31
    江苏
  • 本文字数:752 字

    阅读完需:约 2 分钟

1. 基本介绍

页面路由指的是在应用程序中实现不同页面之间的跳转,以及数据传递。


路由这块知识点包括:


1、创建页面


2、页面跳转和后退


3、页面栈


4、路由模式


5、跳转传参

2. 新建页面

router 的使用都是基于 Entry 修饰的组件


都是基于 resources/base/profile/main-page.json 中的路由配置来跳转的

2.1 第一种方式

无需手动去 resources/base/profile/main-page.json 中的路由配置,工具自动给我们生成


2.2 第二种方式

需要手动去 resources/base/profile/main-page.json 中的路由配置



@Entry@Componentstruct Detail {  @State message: string = 'Hello World';
build() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) } .height('100%') .width('100%') }}
复制代码



3. 页面的跳转和后退


其中 pushUrl 会在当前页面层级再加一层页面,不管是不是同一个页面,


A -> B 相当于当前页面栈中存在两个页面 A 和 B


鸿蒙系统最多页面栈为 32

4. 页面栈

页面栈是用来存储程序运行时页面的一种数据结构,遵循先进后出的原则


页面栈的最大容量是 32 个页面


压栈


router.pushUrl()


获取页面栈的长度


router.getLength()


清空页面栈


router.clear()

5. 路由模式

路由提供了两种不同的跳转模式


1、Standard:无论之前是否添加过,一直添加到页面栈(默认)


2、Single:如果目标页面已存在,会将已有的最近同 url 页面移到栈顶(看情况使用)




Button('点我').onClick(() => {  router.pushUrl({    url: 'pages/Edit'  },router.RouterMode.Standard)})
复制代码


6. 路由传参


Button('点我').onClick(() => {  router.pushUrl({    url: 'pages/Edit',    params:{      name:'东林'    }  },router.RouterMode.Standard)})
复制代码



aboutToAppear(): void {  console.log(JSON.stringify(router.getParams()))}
复制代码



发布于: 17 小时前阅读数: 16
用户头像

享受当下,享受生活,享受成长乐趣! 2025-02-26 加入

鸿蒙、Java、大数据

评论

发布
暂无评论
鸿蒙NEXT开发-页面路由_东林知识库_InfoQ写作社区