- 注册页面,在
src/main/resources/base/profile/main_pages.json
文件新增配置。{ "src": [ "pages/Index", "pages/AnimateTo" ] }
- 导入 router 模块
import router from '@ohos.router'
1. router.pushUrl
2. router.replaceUrl
3. router.back
- 返回上一页面或指定的页面。
- 若上一个页面如果是 router.replaceUrl() 跳转到当前页面的,则 router.back() 不能返回。
- 若指定的页面不在历史页面栈中,也就是用户并未浏览过指定页面,那么将无法回到指定页面。
- router.back(options?: RouterOptions1 ): void
4. router.getParams
- 获取发起跳转的页面往当前页传入的参数。
- router.getParams(): Object
onPageShow(): void { // 页面每次显示时触发。使用 aboutToAppear 页面没反应。
let record = router.getParams() as Record<string, string>
if (record) {
this.id = record['id']
}
}
5. router.clear
- 清空页面栈中的所有历史页面,仅保留当前页面作为栈顶页面。
- router.clear(): void
6. router.getLength
- 获取当前在页面栈内的页面数量。
- router.getLength(): string
7. router.getState
- 获取当前页面的状态信息。
- router.getState(): RouterState3
8. router.showAlertBeforeBackPage
- 开启页面返回询问对话框。
- router.showAlertBeforeBackPage(options: EnableAlertOptions4): void
9. router.hideAlertBeforeBackPage
- 禁用页面返回询问对话框。
- router.hideAlertBeforeBackPage(): void
RouterOptions 路由跳转选项。
{ url: string, params?: object } ↩︎ ↩︎ ↩︎RouterMode 路由跳转模式。
2.1 router.RouterMode.Standard:多实例模式,也是默认情况下的跳转模式。目标页面会被添加到页面栈顶,无论栈中是否存在相同url的页面。
2.2 router.RouterMode.Single:单实例模式。如果目标页面的url已经存在于页面栈中,则该url页面移动到栈顶。如果目标页面的url在页面栈中不存在同url页面,则按照默认的多实例模式进行跳转。 ↩︎ ↩︎RouterState 页面状态信息。
3.1 index: number:表示当前页面在页面栈中的索引。从栈底到栈顶,index从1开始递增。
3.2 name: string:表示当前页面的名称,即对应文件名。
3.3 path: string:表示当前页面的路径。 ↩︎EnableAlertOptions 页面返回询问对话框选项。
{ message: string } 询问对话框内容 ↩︎