HarmonyOS 鸿蒙Next中单页面内使用Navigation跳转,需要维护this.PageMap的路由url和页面的关系,页面多的时候,里面为非常庞大,有没有其他实现 通过this.pageInfos.pushPath({ name: ‘1’ })的url可以直接跳

HarmonyOS 鸿蒙Next中单页面内使用Navigation跳转,需要维护this.PageMap的路由url和页面的关系,页面多的时候,里面为非常庞大,有没有其他实现 通过this.pageInfos.pushPath({ name: ‘1’ })的url可以直接跳 单页面内使用Navigation跳转,需要维护this.PageMap的路由url和页面的关系,页面多的时候,里面为非常庞大,有没有其他实现

通过this.pageInfos.pushPath({ name: ‘1’ })的url可以直接跳到url对应的页面,而不需要在this.PageMap中再维护一次映射关系

3 回复

从API version 12开始,Navigation支持使用系统路由表的方式进行动态路由。各业务模块(HSP/HAR)中需要独立配置router_map.json文件,在触发路由跳转时,应用只需要通过NavPactStack提供的路由方法,传入需要路由的页面配置名称,此时系统会自动完成路由模块的动态加载、页面组件构建,并完成路由跳转,从而实现了开发层面的模块解耦。

(此时Navigation中可以不用配置PageMap)

更多关于HarmonyOS 鸿蒙Next中单页面内使用Navigation跳转,需要维护this.PageMap的路由url和页面的关系,页面多的时候,里面为非常庞大,有没有其他实现 通过this.pageInfos.pushPath({ name: ‘1’ })的url可以直接跳的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过Router模块实现页面跳转,避免维护庞大的this.PageMap。使用Router.pushRouter.replace方法,直接指定目标页面的urlname即可跳转。例如:Router.push({ url: 'pages/Page1' })。这种方式简化了路由管理,无需手动维护PageMap,适合页面较多的场景。

在HarmonyOS Next中,可以使用router模块的pushUrl方法实现更简洁的路由跳转,无需维护庞大的PageMap映射关系。具体实现如下:

  1. 在页面配置中定义路由路径:
{
  "pages": [
    {
      "name": "page1",
      "path": "/page1"
    },
    {
      "name": "page2", 
      "path": "/page2"
    }
  ]
}
  1. 直接使用路径跳转:
import router from '@ohos.router';

// 跳转到指定路径
router.pushUrl({
  url: '/page1'
});

这种方式完全避免了维护PageMap映射表的问题,直接通过配置的路径进行跳转,更加简洁高效。路径和页面的对应关系在pages.json中统一管理,便于维护。

回到顶部