# 页面路由 router
# 接口声明
无需声明
# 导入模块
import router from '@system.router' 或 const router = require('@system.router')
1
# 接口定义
# router.push(OBJECT)
跳转到应用内的某个页面。
# 参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | String | 是 | 要跳转到的 uri,可以是下面的格式: 1. 以"/"开头的应用内页面的路径;例:/about。 2. 以非"/"开头的应用内页面的名称;例:About。 3. 特殊的,如果 uri 的值是"/",则跳转到 path 为"/"的页,没有则跳转到首页 4. 如果 schema 是 hap,会跳转到 hap 链接所支持的类型 |
params | Object | 否 | 跳转时需要传递的数据;跳转到快应用页面时,参数可以在目标页面中通过this.param1 的方式使用,param1 为 json 中的参数名,param1 对应的值会统一转换为 String 类型。 |
# params 参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
___PARAM_PAGE_ANIMATION___3+ | Object | 否 | 页面跳转时动画类型 |
# ___PARAM_PAGE_ANIMATION___ 参数:
页面动作 | 动画类型 | 必填 | 说明 |
---|---|---|---|
openEnter | String | 否 | 打开进入当前页时当前页动画,可选值 slide, none,默认为 slide |
closeEnter | String | 否 | 关闭返回当前页时当前页动画,可选值 slide, none,默认为 slide |
openExit | String | 否 | 打开下一页,退出当前页时当前页动画,可选值 slide, none,默认为 slide |
closeExit | String | 否 | 返回上一页,退出当前页时当前页动画,可选值 slide, none,默认为 slide |
slide 模式在各动作下的动画变化详情如下:
页面动作 | 动画变化 | 动画时长 |
---|---|---|
openEnter | x from 100%~0 | 300ms |
closeEnter | x from -25%~0, alpha 0.6~1.0 | 300ms |
openExit | x from 0~-25%, alpha 1.0~0.6 | 300ms |
closeExit | x from 0~100% | 300ms |
# 示例:
应用内切换页面
- path 切换
router.push({ uri: '/about', params: { testId: '1' } })
1
2
3
4
5
6 - name 切换
// open page by name router.push({ uri: 'About', params: { testId: '1' } })
1
2
3
4
5
6
7
- path 切换
打开另一个快应用
router.push({ uri: 'hap://app/com.example.quickapp/page?key=value' })
1
2
3
# router.replace(OBJECT)
跳转到应用内的某个页面,当前页面无法返回
# 参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | String | 是 | 要跳转到的 uri,可以是下面的格式:
|
params | Object | 否 | 跳转时需要传递的数据,参数可以在目标页面中通过this.param1 的方式使用,param1 为 json 中的参数名,param1 对应的值会统一转换为 String 类型。 |
# 示例:
router.replace({
uri: '/test',
params: {
testId: '1'
}
})
1
2
3
4
5
6
2
3
4
5
6
# router.back()
返回上一页面
# 示例:
// A页面, open page by name
router.push({
uri: 'B'
})
// B页面, open page by name
router.push({
uri: 'C'
})
// C页面, open page by name
router.push({
uri: 'D'
})
// D页面, open page by name
router.push({
uri: 'E'
})
// E页面返回至D页面
router.back()
// D页面返回至C页面
router.back()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# router.clear()
清空所有历史页面记录,仅保留当前页面
# 参数:
无
# 示例:
router.clear()
1
# router.getState()
获取当前页面状态
# 返回参数:
参数名 | 类型 | 说明 |
---|---|---|
index | Number | 当前页面在页面栈中的位置 |
name | String | 当前页面的名称 |
path | String | 当前页面的路径 |
# 示例:
var page = router.getState()
console.log(`page index = ${page.index}`)
console.log(`page name = ${page.name}`)
console.log(`page path = ${page.path}`)
1
2
3
4
2
3
4
←
→