Navigator
路由容器組件,提供路由跳轉能力。
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
該組件從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。
子組件
可以包含子組件。
接口
Navigator(value?: {target: string, type?: NavigationType})
參數:
參數名 | 參數類型 | 必填 | 參數描述 |
---|---|---|---|
target | string | 是 | 指定跳轉目標頁面的路徑。 |
type | [NavigationType] | 否 | 指定路由方式。 默認值:NavigationType.Push |
NavigationType枚舉說明
名稱 | 描述 |
---|---|
Push | 跳轉到應用內的指定頁面。 |
Replace | 用應用內的某個頁面替換當前頁面,并銷毀被替換的頁面。 |
Back | 返回到指定的頁面。指定的頁面不存在棧中時不響應。未傳入指定的頁面時返回上一頁。 |
屬性
名稱 | 參數 | 描述 |
---|---|---|
active | boolean | 當前路由組件是否處于激活狀態,處于激活狀態時,會生效相應的路由操作。 |
params | object | 跳轉時要同時傳遞到目標頁面的數據,可在目標頁面使用[router.getParams()]獲得。 |
target | string | 設置跳轉目標頁面的路徑。 目標頁面需加入main_pages.json文件中。 |
type | [NavigationType] | 設置路由方式。 默認值:NavigationType.PushHarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
示例
// Navigator.ets
@Entry
@Component
struct NavigatorExample {
@State active: boolean = false
@State name: NameObject = { name: 'news' }
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
Navigator({ target: 'pages/container/navigator/Detail', type: NavigationType.Push }) {
Text('Go to ' + this.name.name + ' page')
.width('100%').textAlign(TextAlign.Center)
}.params(new TextObject(this.name)) // 傳參數到Detail頁面
Navigator() {
Text('Back to previous page').width('100%').textAlign(TextAlign.Center)
}.active(this.active)
.onClick(() = > {
this.active = true
})
}.height(150).width(350).padding(35)
}
}
interface NameObject {
name: string;
}
class TextObject {
text: NameObject;
constructor(text: NameObject) {
this.text = text;
}
}
// Detail.ets
import router from '@ohos.router'
@Entry
@Component
struct DetailExample {
// 接收Navigator.ets的傳參
params: Record< string, NameObject > = router.getParams() as Record< string, NameObject >
@State name: NameObject = this.params.text
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
Navigator({ target: 'pages/container/navigator/Back', type: NavigationType.Push }) {
Text('Go to back page').width('100%').height(20)
}
Text('This is ' + this.name.name + ' page')
.width('100%').textAlign(TextAlign.Center)
}
.width('100%').height(200).padding({ left: 35, right: 35, top: 35 })
}
}
interface NameObject {
name: string;
}
// Back.ets
@Entry
@Component
struct BackExample {
build() {
Column() {
Navigator({ target: 'pages/container/navigator/Navigator', type: NavigationType.Back }) {
Text('Return to Navigator Page').width('100%').textAlign(TextAlign.Center)
}
}.width('100%').height(200).padding({ left: 35, right: 35, top: 35 })
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
navigator
+關注
關注
0文章
3瀏覽量
7645 -
組件
+關注
關注
1文章
529瀏覽量
18291 -
鴻蒙
+關注
關注
59文章
2503瀏覽量
43762
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙開發基礎-Web組件之cookie操作
})
...
}
...
本文章主要是對鴻蒙開發當中ArkTS語言的基礎應用實戰,Web組件里的cookie操作。更多的鴻蒙應用開發技術,可以前往我的主頁學習更多,下面是一張
發表于 01-14 21:31
評論