通过不同的url访问不同的页面,包括跳转到应用内的指定页面、同应用内的某个页面替换当前页面、返回上一页面或指定的页面等。
👇🏻👇🏻👇🏻求关注👇🏻👇🏻👇🏻
说明
页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用页面路由方法。
导入模块
import ohos.router.*
函数
push(String, String)
public static func push(url!: String, params!: String = "")
跳转到应用内的指定页面。
参数名 | 参数类型 | 必填 | 默认值 | 描述 |
url | String | 否 | - | 表示目标页面的url,可以用以下两种格式: - 页面绝对路径,由配置文件中pages列表提供,例如: - pages/index/index - pages/detail/detail - 特殊值,如果url的值是"/",则跳转到首页。 |
params | String | 否 | "" | 表示路由跳转时要同时传递到目标页面的数据,切换到其他页面时,当前接收的数据失效。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 说明: params参数不能传递方法和系统接口返回的对象(例如,媒体接口定义和返回的PixelMap对象)。建议开发者提取系统接口返回的对象中需要被传递的基础类型属性,自行构造object类型对象进行传递。 |
push(String, JsonObject)
public static func push(url!: String, params!: JsonObject)
跳转到应用内的指定页面。
参数名 | 参数类型 | 必填 | 默认值 | 描述 |
url | String | 否 | - | 表示目标页面的url,可以用以下两种格式: - 页面绝对路径,由配置文件中pages列表提供,例如: - pages/index/index - pages/detail/detail - 特殊值,如果url的值是"/",则跳转到首页。 |
params | JsonObject | 否 | - | 表示路由跳转时要同时传递到目标页面的数据,切换到其他页面时,当前接收的数据失效。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 说明: params参数不能传递方法和系统接口返回的对象(例如,媒体接口定义和返回的PixelMap对象)。建议开发者提取系统接口返回的对象中需要被传递的基础类型属性,自行构造object类型对象进行传递。 |
back(String, String)
public static func back(url!: String, params!: String = "")
返回上一页面或指定的页面。
参数名 | 参数类型 | 必填 | 默认值 | 描述 |
url | String | 否 | - | 表示目标页面的url,可以用以下两种格式: - 页面绝对路径,由配置文件中pages列表提供,例如: - pages/index/index - pages/detail/detail - 特殊值,如果url的值是"/",则跳转到首页。 |
params | String | 否 | "" | 表示路由跳转时要同时传递到目标页面的数据,切换到其他页面时,当前接收的数据失效。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 说明: params参数不能传递方法和系统接口返回的对象(例如,媒体接口定义和返回的PixelMap对象)。建议开发者提取系统接口返回的对象中需要被传递的基础类型属性,自行构造object类型对象进行传递。 |
back(String, JsonObject)
public static func back(url!: String, params!: JsonObject)
返回上一页面或指定的页面。
参数名 | 参数类型 | 必填 | 默认值 | 描述 |
url | String | 否 | - | 表示目标页面的url,可以用以下两种格式: - 页面绝对路径,由配置文件中pages列表提供,例如: - pages/index/index - pages/detail/detail - 特殊值,如果url的值是"/",则跳转到首页。 |
JsonObject | String | 否 | - | 表示路由跳转时要同时传递到目标页面的数据,切换到其他页面时,当前接收的数据失效。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 说明: params参数不能传递方法和系统接口返回的对象(例如,媒体接口定义和返回的PixelMap对象)。建议开发者提取系统接口返回的对象中需要被传递的基础类型属性,自行构造object类型对象进行传递。 |
back()
public static func back()
返回上一页面或指定的页面。
getParams()
public static func getParams(): Option<String>
获取发起跳转的页面往当前页传入的参数。
返回值:
类型 | 说明 |
Option<String> | 发起跳转的页面往当前页传入的参数。 |
getParamsObject()
public static func getParamsObject(): JsonObject
获取发起跳转的页面往当前页传入的参数。
返回值:
类型 | 说明 |
JsonObject | 发起跳转的页面往当前页传入的参数。 |
示例
import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*
import ohos.router.*
@Entry
@Component
class MyView {
@State var active: Bool = false
func build() {
Column() {
Image(@r(app.media.startIcon)).width(50).height(50).onClick {
e => Router.push(url: "Page1")
}.sharedTransition("sharedImage",
options: SharedTransitionOptions(duration: 800, curve: Curve.Linear, delay: 100))
}
}
}
如对您有帮助,帮忙点个“在看 、关注” 让更多的人受益~!