Router路由跳转

若开发者需要跳转分包页面时,需要使用以下api进行跳转:router.pushUrl和router.replaceUrl。关于路由,详见页面路由

以上述工程为例,若开发者想在entry模块中跳转至library模块中的menu页面(路径为:library/src/main/ets/pages/menu.ets),那么可以在使用以下代码(entry模块下的Index.ets,路径为:entry/src/main/ets/pages/Index.ets):

  1. import { BusinessError } from '@ohos.base';
  2. import router from '@ohos.router';
  3. @Entry
  4. @Component
  5. struct Index {
  6. @State message: string = 'Hello World';
  7. build() {
  8. Row() {
  9. Column() {
  10. Text(this.message)
  11. .fontSize(50)
  12. .fontWeight(FontWeight.Bold)
  13. Button('click to library')
  14. .onClick(()=>{
  15. router.pushUrl({
  16. url: '@bundle:com.atomicservice.123456789/library/ets/pages/menu'
  17. }).then(() => {
  18. console.info('push page success');
  19. }).catch((err: BusinessError) => {
  20. console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`);
  21. })
  22. })
  23. }
  24. .width('100%')
  25. }
  26. .height('100%')
  27. }
  28. }

其中router.pushUrl方法的入参中url的内容为:

  1. '@bundle:com.atomicservice.123456789/library/ets/pages/menu'

url内容的模板为:

  1. '@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)'
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈
更多帮助请到“社区论坛”,如需要其他帮助,请通过“智能客服”提问。
搜索
请输入您想要搜索的关键词