Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
5ab15dd5
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
5ab15dd5
编写于
7月 21, 2022
作者:
L
luoying_ace
提交者:
Gitee
7月 21, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/reference/apis/js-apis-router.md.
Signed-off-by:
N
luoying_ace_admin
<
luoying19@huawei.com
>
上级
90ead80e
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
229 addition
and
280 deletion
+229
-280
zh-cn/application-dev/reference/apis/js-apis-router.md
zh-cn/application-dev/reference/apis/js-apis-router.md
+229
-280
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-router.md
浏览文件 @
5ab15dd5
...
@@ -2,9 +2,10 @@
...
@@ -2,9 +2,10 @@
本模块提供通过不同的url访问不同的页面,包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、返回上一页面或指定的页面等。
本模块提供通过不同的url访问不同的页面,包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、返回上一页面或指定的页面等。
>

**说明**
> **说明**
>
>
> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用页面路由方法。
> - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用页面路由方法。
## 导入模块
## 导入模块
...
@@ -13,13 +14,9 @@
...
@@ -13,13 +14,9 @@
import router from '@ohos.router'
import router from '@ohos.router'
```
```
## 权限列表
无
## router.push
## router.push
push(options: RouterOptions
, mode?: RouterMode
): void
push(options: RouterOptions): void
跳转到应用内的指定页面。
跳转到应用内的指定页面。
...
@@ -27,45 +24,50 @@ push(options: RouterOptions, mode?: RouterMode): void
...
@@ -27,45 +24,50 @@ push(options: RouterOptions, mode?: RouterMode): void
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------
- | -------- | -------- |
-------- |
| -------
| ------------------------------- | ---- | ----------
-------- |
| options |
[
RouterOptions
](
#routeroptions
)
| 是 | 跳转页面描述信息。 |
| options |
[
RouterOptions
](
#routeroptions
)
| 是 | 跳转页面描述信息。 |
| mode
<sup>
9+
</sup>
|
[
RouterMode
](
#routermode9
)
| 否 | 跳转页面使用的模式。 |
**示例:**
**示例:**
```
js
```
js
// 在当前页面中
router
.
push
({
export
default
{
url
:
'
pages/routerpage2
'
,
pushPage
()
{
router
.
push
({
url
:
'
pages/routerpage2/routerpage2
'
,
params
:
{
params
:
{
data1
:
'
message
'
,
data1
:
'
message
'
,
data2
:
{
data2
:
{
data3
:
[
123
,
456
,
789
]
data3
:
[
123
,
456
,
789
]
},
},
},
},
});
});
}
}
```
```
## router.push<sup>9+</sup>
push(options: RouterOptions, mode: RouterMode): void
跳转到应用内的指定页面。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------------- | ------------------------------- | ---- | -------------------- |
| options |
[
RouterOptions
](
#routeroptions
)
| 是 | 跳转页面描述信息。 |
| mode
<sup>
9+
</sup>
|
[
RouterMode
](
#routermode9
)
| 是 | 跳转页面使用的模式。 |
**示例:**
```
js
```
js
// 在routerpage2页面中
router
.
push
({
export
default
{
url
:
'
pages/routerpage2/routerpage2
'
,
data
:
{
params
:
{
data1
:
'
default
'
,
data1
:
'
message
'
,
data2
:
{
data2
:
{
data3
:
[
1
,
2
,
3
]
data3
:
[
123
,
456
,
789
]
}
},
},
onInit
()
{
},
console
.
info
(
'
showData1:
'
+
this
.
data1
);
},
router
.
RouterMode
.
Standard
);
console
.
info
(
'
showData3:
'
+
this
.
data2
.
data3
);
}
}
```
```
## router.replace
## router.replace
replace(options: RouterOptions, mode?: RouterMode): void
replace(options: RouterOptions, mode?: RouterMode): void
...
@@ -76,36 +78,43 @@ replace(options: RouterOptions, mode?: RouterMode): void
...
@@ -76,36 +78,43 @@ replace(options: RouterOptions, mode?: RouterMode): void
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------
- | -------- | -------- |
-------- |
| -------
| ------------------------------- | ---- | ----------
-------- |
| options |
[
RouterOptions
](
#routeroptions
)
| 是 | 替换页面描述信息。 |
| options |
[
RouterOptions
](
#routeroptions
)
| 是 | 替换页面描述信息。 |
| mode
<sup>
9+
</sup>
|
[
RouterMode
](
#routermode9
)
| 否 | 跳转页面使用的模式。 |
**示例:**
**示例:**
```
js
```
js
// 在当前页面中
router
.
replace
({
export
default
{
url
:
'
pages/detail
'
,
replacePage
()
{
router
.
replace
({
url
:
'
pages/detail/detail
'
,
params
:
{
params
:
{
data1
:
'
message
'
,
data1
:
'
message
'
,
},
},
},
router
.
RouterMode
.
Standard
);
});
}
}
```
```
## router.replace
<sup>
9+
</sup>
replace(options: RouterOptions, mode: RouterMode): void
用应用内的某个页面替换当前页面,并销毁被替换的页面。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------------- | ------------------------------- | ---- | -------------------- |
| options |
[
RouterOptions
](
#routeroptions
)
| 是 | 替换页面描述信息。 |
| mode
<sup>
9+
</sup>
|
[
RouterMode
](
#routermode9
)
| 是 | 跳转页面使用的模式。 |
**示例:**
```
js
```
js
// 在detail页面中
router
.
replace
({
export
default
{
url
:
'
pages/detail/detail
'
,
data
:
{
params
:
{
data1
:
'
default
'
data1
:
'
message
'
,
},
},
onInit
()
{
},
router
.
RouterMode
.
Standard
);
console
.
info
(
'
showData1:
'
+
this
.
data1
)
}
}
```
```
## router.back
## router.back
...
@@ -118,57 +127,13 @@ back(options?: RouterOptions ): void
...
@@ -118,57 +127,13 @@ back(options?: RouterOptions ): void
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------
- | -------- | -------- |
-------- |
| -------
| ------------------------------- | ---- | ----------------------------------------------------
-------- |
| options |
[
RouterOptions
](
#routeroptions
)
|
是
| 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页。 |
| options |
[
RouterOptions
](
#routeroptions
)
|
否
| 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页。 |
**示例:**
**示例:**
```
js
// index页面
export
default
{
indexPushPage
()
{
router
.
push
({
url
:
'
pages/detail/detail
'
,
});
}
}
```
```
js
```
js
// detail页面
router
.
back
({
uri
:
'
pages/detail
'
});
export
default
{
detailPushPage
()
{
router
.
push
({
url
:
'
pages/mall/mall
'
,
});
}
}
```
```
js
// mall页面通过back,将返回detail页面
export
default
{
mallBackPage
()
{
router
.
back
();
}
}
```
```
js
// detail页面通过back,将返回index页面
export
default
{
defaultBack
()
{
router
.
back
();
}
}
```
```
js
// 通过back,返回到detail页面
export
default
{
backToDetail
()
{
router
.
back
({
uri
:
'
pages/detail/detail
'
});
}
}
```
```
## router.clear
## router.clear
...
@@ -180,12 +145,9 @@ clear(): void
...
@@ -180,12 +145,9 @@ clear(): void
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**示例:**
**示例:**
```
js
```
js
export
default
{
router
.
clear
();
clearPage
()
{
router
.
clear
();
}
}
js
```
```
## router.getLength
## router.getLength
...
@@ -198,17 +160,13 @@ getLength(): string
...
@@ -198,17 +160,13 @@ getLength(): string
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
| ------
-- |
-------- |
| ------
| --------------------------
-------- |
| string | 页面数量,页面栈支持最大数值是32。 |
| string | 页面数量,页面栈支持最大数值是32。 |
**示例:**
**示例:**
```
js
```
js
export
default
{
var
size
=
router
.
getLength
();
getLength
()
{
console
.
log
(
'
pages stack size =
'
+
size
);
var
size
=
router
.
getLength
();
console
.
log
(
'
pages stack size =
'
+
size
);
}
}
```
```
## router.getState
## router.getState
...
@@ -224,29 +182,27 @@ getState(): RouterState
...
@@ -224,29 +182,27 @@ getState(): RouterState
| 类型 | 说明 |
| 类型 | 说明 |
| --------------------------- | -------------- |
| --------------------------- | -------------- |
|
[
RouterState
](
#routerstate
)
| 页面状态信息。 |
|
[
RouterState
](
#routerstate
)
| 页面状态信息。 |
**示例:**
```
js
var
page
=
router
.
getState
();
console
.
log
(
'
current index =
'
+
page
.
index
);
console
.
log
(
'
current name =
'
+
page
.
name
);
console
.
log
(
'
current path =
'
+
page
.
path
);
```
## RouterState
## RouterState
页面状态信息。
页面状态信息。
**系统能力:**
以下各项对应的系统能力均为
SystemCapability.ArkUI.ArkUI.Full。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full。
| 名称 | 类型 | 说明 |
| 名称 | 类型 | 说明 |
| -----
--- | -------- |
-------- |
| -----
| ------ | ----------------------------------------------------
-------- |
| index | number | 表示当前页面在页面栈中的索引。
<br/>
>

**说明:**
<br/>
>
从栈底到栈顶,index从1开始递增。 |
| index | number | 表示当前页面在页面栈中的索引。从栈底到栈顶,index从1开始递增。 |
| name | string | 表示当前页面的名称,即对应文件名。 |
| name | string | 表示当前页面的名称,即对应文件名。 |
| path | string | 表示当前页面的路径。 |
| path | string | 表示当前页面的路径。 |
**示例:**
```
js
export
default
{
getState
()
{
var
page
=
router
.
getState
();
console
.
log
(
'
current index =
'
+
page
.
index
);
console
.
log
(
'
current name =
'
+
page
.
name
);
console
.
log
(
'
current path =
'
+
page
.
path
);
}
}
```
## router.enableAlertBeforeBackPage
## router.enableAlertBeforeBackPage
enableAlertBeforeBackPage(options: EnableAlertOptions): void
enableAlertBeforeBackPage(options: EnableAlertOptions): void
...
@@ -257,25 +213,15 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void
...
@@ -257,25 +213,15 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------
- | -------- | -------- |
-------- |
| -------
| ----------------------------------------- | ---- | ----------
-------- |
| options |
[
EnableAlertOptions
](
#enablealertoptions
)
| 是 | 文本弹窗信息描述。 |
| options |
[
EnableAlertOptions
](
#enablealertoptions
)
| 是 | 文本弹窗信息描述。 |
**示例:**
**示例:**
```
js
```
js
export
default
{
enableAlertBeforeBackPage
()
{
router
.
enableAlertBeforeBackPage
({
router
.
enableAlertBeforeBackPage
({
message
:
'
Message Info
'
,
message
:
'
Message Info
'
success
:
function
()
{
console
.
log
(
'
success
'
);
},
fail
:
function
()
{
console
.
log
(
'
fail
'
);
},
});
});
}
}
```
```
## EnableAlertOptions
## EnableAlertOptions
...
@@ -284,7 +230,7 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void
...
@@ -284,7 +230,7 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void
**系统能力:**
以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。
| 名称 | 类型 | 必填 | 说明 |
| 名称 | 类型 | 必填 | 说明 |
| -------
- | -------- | -------- |
-------- |
| -------
| ------ | ---- | --------
-------- |
| message | string | 是 | 询问对话框内容。 |
| message | string | 是 | 询问对话框内容。 |
## router.disableAlertBeforeBackPage
## router.disableAlertBeforeBackPage
...
@@ -297,11 +243,7 @@ disableAlertBeforeBackPage(): void
...
@@ -297,11 +243,7 @@ disableAlertBeforeBackPage(): void
**示例:**
**示例:**
```
js
```
js
export
default
{
router
.
disableAlertBeforeBackPage
();
disableAlertBeforeBackPage
()
{
router
.
disableAlertBeforeBackPage
();
}
}
```
```
## router.getParams
## router.getParams
...
@@ -320,10 +262,43 @@ getParams(): Object
...
@@ -320,10 +262,43 @@ getParams(): Object
**示例:**
**示例:**
-
类Web范示例
```
```
js
router.getParams();
// 在当前页面中
```
export
default
{
## RouterOptions
路由跳转选项。
**系统能力:**
SystemCapability.ArkUI.ArkUI.FULL。
| 名称 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| url | string | 是 | 表示目标页面的uri,可以用以下两种格式:
<br/>
-
页面绝对路径,由配置文件中pages列表提供,例如:
<br/>
-
pages/index/index
<br/>
-
pages/detail/detail
<br/>
-
特殊值,如果uri的值是"/",则跳转到首页。 |
| params | Object | 否 | 跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如this.data1(data1为跳转时params参数中的key值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 |
> **说明:**
> 页面路由栈支持的最大Page数量为32。
## RouterMode<sup>9+</sup>
路由跳转模式。
**系统能力:**
SystemCapability.ArkUI.ArkUI.FULL。
| 名称 | 描述 |
| -------- | ------------------------------------------------------------ |
| Standard | 标准模式。 |
| Single | 单实例模式。
<br/>
如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。
<br/>
如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 |
## 完整示例
### 基于JS扩展的类Web开发范式
```
js
// 在当前页面中
export
default
{
pushPage
()
{
pushPage
()
{
router
.
push
({
router
.
push
({
url
:
'
pages/detail/detail
'
,
url
:
'
pages/detail/detail
'
,
...
@@ -332,26 +307,26 @@ getParams(): Object
...
@@ -332,26 +307,26 @@ getParams(): Object
},
},
});
});
}
}
}
}
```
```
```
js
```
js
// 在detail页面中
// 在detail页面中
export
default
{
export
default
{
onInit
()
{
onInit
()
{
console
.
info
(
'
showData1:
'
+
router
.
getParams
().
data1
);
console
.
info
(
'
showData1:
'
+
router
.
getParams
().
data1
);
}
}
}
}
```
```
-
声明式示例
### 基于TS扩展的声明式开发范式
```
ts
```
ts
//通过router.push跳转至目标页携带params参数
//通过router.push跳转至目标页携带params参数
import
router
from
'
@ohos.router
'
import
router
from
'
@ohos.router
'
@
Entry
@
Entry
@
Component
@
Component
struct
Index
{
struct
Index
{
async
routePage
()
{
async
routePage
()
{
let
options
=
{
let
options
=
{
url
:
'
pages/second
'
,
url
:
'
pages/second
'
,
...
@@ -388,16 +363,16 @@ getParams(): Object
...
@@ -388,16 +363,16 @@ getParams(): Object
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
.
height
(
'
100%
'
)
.
height
(
'
100%
'
)
}
}
}
}
```
```
```
ts
```
ts
//在second页面中接收传递过来的参数
//在second页面中接收传递过来的参数
import
router
from
'
@ohos.router
'
import
router
from
'
@ohos.router
'
@
Entry
@
Entry
@
Component
@
Component
struct
Second
{
struct
Second
{
private
content
:
string
=
"
这是第二页
"
private
content
:
string
=
"
这是第二页
"
@
State
text
:
string
=
router
.
getParams
()[
'
text
'
]
@
State
text
:
string
=
router
.
getParams
()[
'
text
'
]
@
State
data
:
any
=
router
.
getParams
()[
'
data
'
]
@
State
data
:
any
=
router
.
getParams
()[
'
data
'
]
...
@@ -422,31 +397,5 @@ getParams(): Object
...
@@ -422,31 +397,5 @@ getParams(): Object
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
.
height
(
'
100%
'
)
.
height
(
'
100%
'
)
}
}
}
}
```
```
\ No newline at end of file
## RouterOptions
路由跳转选项。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。
| 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| url | string | 是 | 表示目标页面的uri,可以用以下两种格式:
<br/>
-
页面绝对路径,由配置文件中pages列表提供,例如:
<br/>
-
pages/index/index
<br/>
-
pages/detail/detail
<br/>
-
特殊值,如果uri的值是"/",则跳转到首页。 |
| params | Object | 否 | 跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如this.data1(data1为跳转时params参数中的key值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 |
>  **说明:**
> 页面路由栈支持的最大Page数量为32。
## RouterMode<sup>9+</sup>
路由跳转模式。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。
| 名称 | 描述 |
| -------- | -------- |
| Standard | 标准模式。 |
| Single | 单实例模式。
<br/>
如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。
<br/>
如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 |
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录