1e41f4b71Sopenharmony_ci# Navigator 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci路由容器组件,提供路由跳转能力。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 从API Version 13 开始,该组件不再维护,推荐使用组件[Navigation](ts-basic-components-navigation.md)进行页面路由。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci## 子组件 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci可以包含子组件。 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## 接口 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ciNavigator(value?: {target: string, type?: NavigationType}) 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**参数:** 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 28e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | ---------------------------------------------- | 29e41f4b71Sopenharmony_ci| target | string | 是 | 指定跳转目标页面的路径。 | 30e41f4b71Sopenharmony_ci| type | [NavigationType](#navigationtype枚举说明) | 否 | 指定路由方式。<br/>默认值:NavigationType.Push | 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci## NavigationType枚举说明 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 39e41f4b71Sopenharmony_ci| ------- | ------- | -------------------------- | 40e41f4b71Sopenharmony_ci| Push | 1 | 跳转到应用内的指定页面。 | 41e41f4b71Sopenharmony_ci| Replace | 2 | 用应用内的某个页面替换当前页面,并销毁被替换的页面。 | 42e41f4b71Sopenharmony_ci| Back | 3 | 返回到指定的页面。指定的页面不存在栈中时不响应。未传入指定的页面时返回上一页。 | 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci## 属性 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci### active 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ciactive(value: boolean) 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci设置当前路由组件是否处于激活状态,处于激活状态时,会生效相应的路由操作。 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci**参数:** 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 59e41f4b71Sopenharmony_ci| ------ | ------- | ---- | -------------------------- | 60e41f4b71Sopenharmony_ci| value | boolean | 是 | 路由组件是否处于激活状态。 | 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci### params 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ciparams(value: object) 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci设置跳转时传递到目标页面的数据。 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci**参数:** 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 75e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------------------------------------ | 76e41f4b71Sopenharmony_ci| value | object | 是 | 跳转时要同时传递到目标页面的数据,可在目标页面使用[router.getParams()](../js-apis-router.md#routergetparams)获得。 | 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci### target 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_citarget(value: string) 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci设置跳转目标页面的路径。 目标页面需加入main_pages.json文件中。 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**参数:** 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 91e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 92e41f4b71Sopenharmony_ci| value | string | 是 | 转目标页面的路径。 | 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci### type 95e41f4b71Sopenharmony_citype(value: NavigationType) 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci设置路由跳转方式。 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci**参数:** 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 106e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------------------------------- | 107e41f4b71Sopenharmony_ci| value | [NavigationType](#navigationtype枚举说明) | 是 | 路由跳转方式。<br/>默认值:NavigationType.Push | 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci## 示例 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci```ts 113e41f4b71Sopenharmony_ci// Navigator.ets 114e41f4b71Sopenharmony_ci@Entry 115e41f4b71Sopenharmony_ci@Component 116e41f4b71Sopenharmony_cistruct NavigatorExample { 117e41f4b71Sopenharmony_ci @State active: boolean = false 118e41f4b71Sopenharmony_ci @State name: NameObject = { name: 'news' } 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci build() { 121e41f4b71Sopenharmony_ci Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) { 122e41f4b71Sopenharmony_ci Navigator({ target: 'pages/container/navigator/Detail', type: NavigationType.Push }) { 123e41f4b71Sopenharmony_ci Text('Go to ' + this.name.name + ' page') 124e41f4b71Sopenharmony_ci .width('100%').textAlign(TextAlign.Center) 125e41f4b71Sopenharmony_ci }.params(new TextObject(this.name)) // 传参数到Detail页面 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci Navigator() { 128e41f4b71Sopenharmony_ci Text('Back to previous page').width('100%').textAlign(TextAlign.Center) 129e41f4b71Sopenharmony_ci }.active(this.active) 130e41f4b71Sopenharmony_ci .onClick(() => { 131e41f4b71Sopenharmony_ci this.active = true 132e41f4b71Sopenharmony_ci }) 133e41f4b71Sopenharmony_ci }.height(150).width(350).padding(35) 134e41f4b71Sopenharmony_ci } 135e41f4b71Sopenharmony_ci} 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ciinterface NameObject { 138e41f4b71Sopenharmony_ci name: string; 139e41f4b71Sopenharmony_ci} 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ciclass TextObject { 142e41f4b71Sopenharmony_ci text: NameObject; 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci constructor(text: NameObject) { 145e41f4b71Sopenharmony_ci this.text = text; 146e41f4b71Sopenharmony_ci } 147e41f4b71Sopenharmony_ci} 148e41f4b71Sopenharmony_ci``` 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci```ts 151e41f4b71Sopenharmony_ci// Detail.ets 152e41f4b71Sopenharmony_ciimport { router } from '@kit.ArkUI' 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci@Entry 155e41f4b71Sopenharmony_ci@Component 156e41f4b71Sopenharmony_cistruct DetailExample { 157e41f4b71Sopenharmony_ci // 接收Navigator.ets的传参 158e41f4b71Sopenharmony_ci params: Record<string, NameObject> = router.getParams() as Record<string, NameObject> 159e41f4b71Sopenharmony_ci @State name: NameObject = this.params.text 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci build() { 162e41f4b71Sopenharmony_ci Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) { 163e41f4b71Sopenharmony_ci Navigator({ target: 'pages/container/navigator/Back', type: NavigationType.Push }) { 164e41f4b71Sopenharmony_ci Text('Go to back page').width('100%').height(20) 165e41f4b71Sopenharmony_ci } 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci Text('This is ' + this.name.name + ' page') 168e41f4b71Sopenharmony_ci .width('100%').textAlign(TextAlign.Center) 169e41f4b71Sopenharmony_ci } 170e41f4b71Sopenharmony_ci .width('100%').height(200).padding({ left: 35, right: 35, top: 35 }) 171e41f4b71Sopenharmony_ci } 172e41f4b71Sopenharmony_ci} 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ciinterface NameObject { 175e41f4b71Sopenharmony_ci name: string; 176e41f4b71Sopenharmony_ci} 177e41f4b71Sopenharmony_ci``` 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci```ts 180e41f4b71Sopenharmony_ci// Back.ets 181e41f4b71Sopenharmony_ci@Entry 182e41f4b71Sopenharmony_ci@Component 183e41f4b71Sopenharmony_cistruct BackExample { 184e41f4b71Sopenharmony_ci build() { 185e41f4b71Sopenharmony_ci Column() { 186e41f4b71Sopenharmony_ci Navigator({ target: 'pages/container/navigator/Navigator', type: NavigationType.Back }) { 187e41f4b71Sopenharmony_ci Text('Return to Navigator Page').width('100%').textAlign(TextAlign.Center) 188e41f4b71Sopenharmony_ci } 189e41f4b71Sopenharmony_ci }.width('100%').height(200).padding({ left: 35, right: 35, top: 35 }) 190e41f4b71Sopenharmony_ci } 191e41f4b71Sopenharmony_ci} 192e41f4b71Sopenharmony_ci``` 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ci 195