文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
开发与测试开放能力API应用框架ArkUI(方舟UI框架)ArkTS组件已停止维护的组件与接口NavRouter

NavRouter

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

导航组件,默认提供点击响应处理,不需要开发者自定义点击事件逻辑。

说明

从API version 13开始,该组件不再维护,推荐使用NavPathStack配合navDestination属性进行页面路由。

该组件从API version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

必须包含两个子组件,其中第二个子组件必须为NavDestination

说明

子组件个数异常时:

  1. 有且仅有1个时,触发路由到NavDestination的能力失效。
  2. 有且仅有1个时,且使用NavDestination场景下,不进行路由。
  3. 大于2个时,后续的子组件不显示。
  4. 第二个子组件不为NavDestination时,触发路由功能失效。

接口

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

NavRouter()

说明

从API version 9开始支持,从API version 13开始废弃,建议使用NavPathStacknavDestination替代。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

NavRouter(value: RouteInfo)

提供路由信息,指定点击NavRouter时,要跳转的NavDestination页面。

说明

从API version 10开始支持,从API version 13开始废弃,建议使用NavPathStacknavDestination替代。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value RouteInfo 路由信息。

属性

除支持通用属性外,还支持以下属性:

mode(deprecated)

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

mode(mode: NavRouteMode)

设置指定点击NavRouter跳转到NavDestination页面时,使用的路由模式。

说明

从API version 10开始支持,从API version 13开始废弃,建议使用LaunchMode替代。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
mode NavRouteMode

指定点击NavRouter跳转到NavDestination页面时,使用的路由模式。

默认值:NavRouteMode.PUSH_WITH_RECREATE

RouteInfo(deprecated)对象说明

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

路由信息。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 只读 可选 说明
name string

点击NavRouter跳转到的NavDestination页面的名称。

说明:

从API version 10开始支持,从API version 13开始废弃,建议使用name替代。

param unknown

点击NavRouter跳转到NavDestination页面时,传递的参数。

说明:

从API version 10开始支持,从API version 13开始废弃,建议使用param替代。

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

路由模式。

说明

从API version 10开始支持,从API version 13开始废弃,建议使用NavPathStacknavDestination替代。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 说明
PUSH_WITH_RECREATE 跳转到新的NavDestination页面时,替换当前显示的NavDestination页面,页面销毁,但该页面信息仍保留在路由栈中。
PUSH 跳转到新的NavDestination页面时,覆盖当前显示的NavDestination页面,该页面不销毁,且页面信息保留在路由栈中。
REPLACE 跳转到新的NavDestination页面时,替换当前显示的NavDestination页面,页面销毁,且该页面信息从路由栈中清除。

事件

onStateChange(deprecated)

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

onStateChange(callback: (isActivated: boolean) => void)

组件激活状态切换时触发该回调。开发者点击激活NavRouter,加载对应的NavDestination子组件时,回调onStateChange(true)。NavRouter对应的NavDestination子组件不再显示时,回调onStateChange(false)。

说明

从API version 9开始支持,从API version 13开始废弃,建议使用onShownonHidden替代。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
isActivated boolean isActivated为true时表示激活,为false时表示未激活。

示例

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct NavRouterExample {
  5. @State isActiveWLAN: boolean = false
  6. @State isActiveBluetooth: boolean = false
  7. build() {
  8. Navigation() {
  9. NavRouter() {
  10. Row() {
  11. Row()
  12. .width(30)
  13. .height(30)
  14. .borderRadius(30)
  15. .margin({ left: 3, right: 10 })
  16. .backgroundColor(Color.Pink)
  17. Text(`WLAN`)
  18. .fontSize(22)
  19. .fontWeight(500)
  20. .textAlign(TextAlign.Center)
  21. }
  22. .width('90%')
  23. .height(60)
  24. NavDestination() {
  25. Flex({ direction: FlexDirection.Row }) {
  26. Text('未找到可用WLAN').fontSize(30).padding({ left: 15 })
  27. }
  28. }.title("WLAN")
  29. }
  30. .margin({ top: 10, bottom: 10 })
  31. .backgroundColor(this.isActiveWLAN ? '#ccc' : '#fff')
  32. .borderRadius(20)
  33. .mode(NavRouteMode.PUSH_WITH_RECREATE)
  34. .onStateChange((isActivated: boolean) => {
  35. this.isActiveWLAN = isActivated
  36. })
  37. NavRouter() {
  38. Row() {
  39. Row()
  40. .width(30)
  41. .height(30)
  42. .borderRadius(30)
  43. .margin({ left: 3, right: 10 })
  44. .backgroundColor(Color.Pink)
  45. Text(`蓝牙`)
  46. .fontSize(22)
  47. .fontWeight(500)
  48. .textAlign(TextAlign.Center)
  49. }
  50. .width('90%')
  51. .height(60)
  52. NavDestination() {
  53. Flex({ direction: FlexDirection.Row }) {
  54. Text('未找到可用蓝牙').fontSize(30).padding({ left: 15 })
  55. }
  56. }.title("蓝牙")
  57. }
  58. .margin({ top: 10, bottom: 10 })
  59. .backgroundColor(this.isActiveBluetooth ? '#ccc' : '#fff')
  60. .borderRadius(20)
  61. .mode(NavRouteMode.REPLACE)
  62. .onStateChange((isActivated: boolean) => {
  63. this.isActiveBluetooth = isActivated
  64. })
  65. }
  66. .height('100%')
  67. .width('100%')
  68. .title('设置')
  69. .backgroundColor("#F2F3F5")
  70. .titleMode(NavigationTitleMode.Free)
  71. .mode(NavigationMode.Auto)
  72. }
  73. }

在 开发与测试 开放能力API 中进行搜索
请输入您想要搜索的关键词