Navigation基础二

无名的Pupil
发布于 2025-3-24 19:22
1390浏览
0收藏

我们在上一篇章中基本介绍完了Router的一些用法,我我们回归到路由这个主题。
在很早的一篇内容中我们便提到了Navigation这个路由方式,这也是官方推荐我们使用的一种路由方式,在很早的那个篇章中我们介绍了其中的基础跳转方式pushPath,但是Navigation的功能十分强大,它肯定也支持跨包进行跳转,其中跨包进行跳转就需要用到我们的另外一个方法:pushPathByName。
从名字上来看它是根据名字来进行跳转的,确实我们观察其中的参数便可知晓
pushPathByName(name: string, param: unknown, animated?: boolean): void
他的第一个参数便是名字,然后是跳转传递的参数,以及是否支持转场动画。
我们直接上代码进行演示:
Navigation基础二-鸿蒙开发者社区
Navigation基础二-鸿蒙开发者社区

/* Hap包 */
@Entry
@Component
struct Index {
pathInfos: NavPathStack = new NavPathStack()

build() {
Navigation(this.pathInfos) {
Button(“跨模块跳转”)
.onClick(_ => { this.pathInfos.pushPathByName(“Index”, null) })
}
}
}

@Builder
function IndexBuilder() {
Index()
}
/* Hsp包 */
@Entry
@Component
struct Index {

build() {
NavDestination() {
Text(“我是跨Hsp包的NavDestination”)
}
}
}
其中我们的pushPathByName必须传递两个参数,第一个参数是我们需要跳转包的名称,第二个是我们需要传递的参数,如果没有我们就直接写null便可。这需要我们在路由池中以及注册号的那个名称, 我下面这个是Hsp包中的路由池, 如下:
json
{
“routerMap”: [
{
“name”: “Index”,
“pageSourceFile”: “src/main/ets/pages/Index.ets”,
“buildFunction”: “IndexBuilder”
}
]

}
其中我们在Hsp包中注册好路由池并且在Hsp包中,ets下面的module.json5中绑定好了路由池后,还差最后一步便可以完成跳转,便是多个模块一起编译
Navigation基础二-鸿蒙开发者社区
在完成这一步后我们便可以使用Navigation的路由方式进行跨包的跳转

Harmony OS NEXT API12
本次就暂时介绍这么多, 在下一篇内容中我会给大家介绍一下样式复用的修饰器
谢谢各位的观看,有错误不足的地方, 本人乐于接受各位的意见

分类
标签
收藏
回复
举报


回复
    相关推荐