【HarmonyOS 4.0】@ohos.router 页面路由

2024-08-31 10:04

本文主要是介绍【HarmonyOS 4.0】@ohos.router 页面路由,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 注册页面,在src/main/resources/base/profile/main_pages.json文件新增配置。
{"src": ["pages/Index","pages/AnimateTo"]
}
  1. 导入 router 模块
import router from '@ohos.router'

1. router.pushUrl

  1. 跳转到应用内的指定页面
  2. 会将当前页面压入历史页面栈,因此使用该方法跳转到目标页面之后,还可以再返回。
  3. router.pushUrl(options: RouterOptions1): Promise
  4. router.pushUrl(options: RouterOptions, mode: RouterMode2): Promise

2. router.replaceUrl

  1. 用应用内的某个页面替换当前页面,并销毁被替换的页面。不支持设置页面转场动效,如需设置,推荐使用Navigation组件。
  2. 会直接销毁当前页面并释放资源,用目标页替换当前页,因此使用该方法跳转到目标页面之后,不能返回。
  3. router.replaceUrl(options: RouterOptions1): Promise
  4. router.replaceUrl(options: RouterOptions, mode: RouterMode2): Promise

3. router.back

  1. 返回上一页面或指定的页面。
  2. 若上一个页面如果是 router.replaceUrl() 跳转到当前页面的,则 router.back() 不能返回。
  3. 若指定的页面不在历史页面栈中,也就是用户并未浏览过指定页面,那么将无法回到指定页面。
  4. router.back(options?: RouterOptions1 ): void

4. router.getParams

  1. 获取发起跳转的页面往当前页传入的参数。
  2. router.getParams(): Object
onPageShow(): void { // 页面每次显示时触发。使用 aboutToAppear 页面没反应。let record = router.getParams() as Record<string, string>if (record) {this.id = record['id']}
}

5. router.clear

  1. 清空页面栈中的所有历史页面,仅保留当前页面作为栈顶页面。
  2. router.clear(): void

6. router.getLength

  1. 获取当前在页面栈内的页面数量。
  2. router.getLength(): string

7. router.getState

  1. 获取当前页面的状态信息。
  2. router.getState(): RouterState3

8. router.showAlertBeforeBackPage

  1. 开启页面返回询问对话框。
  2. router.showAlertBeforeBackPage(options: EnableAlertOptions4): void

9. router.hideAlertBeforeBackPage

  1. 禁用页面返回询问对话框。
  2. router.hideAlertBeforeBackPage(): void

  1. RouterOptions 路由跳转选项。
    { url: string, params?: object } ↩︎ ↩︎ ↩︎

  2. RouterMode 路由跳转模式。
    2.1 router.RouterMode.Standard:多实例模式,也是默认情况下的跳转模式。目标页面会被添加到页面栈顶,无论栈中是否存在相同url的页面。
    2.2 router.RouterMode.Single:单实例模式。如果目标页面的url已经存在于页面栈中,则该url页面移动到栈顶。如果目标页面的url在页面栈中不存在同url页面,则按照默认的多实例模式进行跳转。 ↩︎ ↩︎

  3. RouterState 页面状态信息。
    3.1 index: number:表示当前页面在页面栈中的索引。从栈底到栈顶,index从1开始递增。
    3.2 name: string:表示当前页面的名称,即对应文件名。
    3.3 path: string:表示当前页面的路径。 ↩︎

  4. EnableAlertOptions 页面返回询问对话框选项。
    { message: string } 询问对话框内容 ↩︎

这篇关于【HarmonyOS 4.0】@ohos.router 页面路由的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123586

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

Weex入门教程之3,使用 Vue 开发 Weex 页面

环境安装 在这里简略地介绍下,详细看官方教程 Node.js 环境 Node.js官网 通常,安装了 Node.js 环境,npm 包管理工具也随之安装了。因此,直接使用 npm 来安装 weex-toolkit。 npm 是一个 JavaScript 包管理工具,它可以让开发者轻松共享和重用代码。Weex 很多依赖来自社区,同样,Weex 也将很多工具发布到社区方便开发者使用。

【HarmonyOS】-TaskPool和Worker的对比实践

ArkTS提供了TaskPool与Worker两种多线程并发方案,下面我们将从其工作原理、使用效果对比两种方案的差异,进而选择适用于ArkTS图片编辑场景的并发方案。 TaskPool与Worker工作原理 TaskPool与Worker两种多线程并发能力均是基于 Actor并发模型实现的。Worker主、子线程通过收发消息进行通信;TaskPool基于Worker做了更多场景化的功能封装,例

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说

ViewPager+fragment实现切换页面(一)

如今的很多应用中都是下面有一排按钮,点击可以切换页面,滑动也可以切换页面。下面就来简单的实现这个功能。 思路 首先肯定是会用到viewpager这个控件,为了能够向下兼容,最好用v4包下的viewpager,Activity要继承FragmentActivity 其次用一个集合来存储所有的fragment页面在设置viewpager的适配器时,把存储fragment页面的list集合传入ada

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数 一、环境说明二、页面之间相互传参 一、环境说明 DevEco Studio 版本: API版本:以12为主 二、页面之间相互传参 说明: 页面间的导航可以通过页面路由router模块来实现。页面路由模块根据页面url找到目标页面,从而实现跳转。通过页面路由模块,可以使用不同的url访问不同的页面,包括跳转到U