HarmonyOS鸿蒙Next中关于项目路由跳转的问题

HarmonyOS鸿蒙Next中关于项目路由跳转的问题 目前看开发文档,router跳转目前为不推荐状态,目前推荐navigation来进行页面跳转

但是项目目前全部使用的router进行的页面跳转,如果全部改为navigation工作量较大,目前项目版本还在大批量的迭代中,也没时间去进行路由的重构工作,那么对于新的组件功能模块,是否可以使用navigation进行页面跳转,老的router跳转逻辑先维持不变,后续有时间再逐步替代。

如果可以能否提供下相关并行跳转的文档或例子

3 回复

1、若需要router和Navigation混用,需要在router跳转到的页面使用Navigation组件重新开启新的Navigation,参考示例:

//index.ets (在main_page.json中注册)

@Entry
@Component
struct Index {
  pageInfo: NavPathStack = new NavPathStack()
  build() {
    Navigation(this.pageInfo) {
      Column() {
        Button('StartTest', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onClick(() => {
            this.pageInfo.pushPath({ name: 'pageOne' })
          })
      }
    }.title('NavIndex')
  }
}

更多关于HarmonyOS鸿蒙Next中关于项目路由跳转的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,项目路由跳转主要依赖于[@ohos](/user/ohos).router模块。该模块提供了页面跳转、参数传递、返回上一页等功能。具体使用如下:

  1. 页面跳转

    import router from '[@ohos](/user/ohos).router';
    router.pushUrl({
      url: 'pages/NextPage',
      params: {
        key: 'value'
      }
    });
    
  2. 返回上一页

    import router from '[@ohos](/user/ohos).router';
    router.back();
    
  3. 参数获取

    import router from '[@ohos](/user/ohos).router';
    const params = router.getParams();
    
  4. 跳转并替换当前页

    import router from '[@ohos](/user/ohos).router';
    router.replaceUrl({
      url: 'pages/NewPage'
    });
    
  5. 跳转并清除历史记录

    import router from '[@ohos](/user/ohos).router';
    router.clear();
    router.pushUrl({
      url: 'pages/ClearedPage'
    });
    

这些方法可以满足基本的页面跳转需求。

在HarmonyOS鸿蒙Next中,项目路由跳转主要通过Router模块实现。开发者可以使用Router.push方法进行页面跳转,并传递参数。示例代码如下:

import router from '@ohos.router';

router.push({
  url: 'pages/NextPage',  // 目标页面路径
  params: { key: 'value' }  // 传递的参数
});

此外,Router.replace可用于替换当前页面,Router.back用于返回上一页。确保在config.json中正确配置页面路由。

回到顶部