如何实现router命名路由跳转

如何实现router命名路由跳转

HarmonyOS
2024-05-22 22:52:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
li_jian_jun

命名路由解决的问题主要是,如何har中跳转页面。har是一个共享包,早期的设计是不允许有页面的概念存在的,所以har里面的组件不能加@Entry这样的注解,也没有main_page.json5配置文件。

命名路由使用注意点:

1. 命名路由不局限于module类型,在共享包可用包括hsp和har,在entry或featrue也可用。

2. 命名路由目前的使用必须要import对应组件,即若无import("module")则无法生效。

3. @Entry({routeName})注解约等于@Entry,实现在har中伪定义页面效果,routeName对应的值也就是接口pushNameRoute入参的name。

4. pushNameRoute和pushUrl无关联。

5. 组件无法作为页面使用,拥有@Entry的组件可以作为页面入口,所以对应文件可以作为页面。

router用于页面传参的param虽然支持传对象,但作为参数的对象里面,成员类型只能是string或者数组这种简单的数据类型,想传递复杂类型的数据建议开发者用eventhub。

参考代码

import router from '@ohos.router' 
import hilog from '@ohos.hilog'; 
 
@Entry({ routeName: "PlaygroundMainPage" }) 
@Component 
export struct PlaygroundMainPage { 
  onPageShow() { 
    hilog.info(0x0000, 'testTag', '%{public}s', 'PlaygroundMainPage onPageShow'); 
  } 
 
  build() { 
    Row() { 
      Column() { 
        Button("DX测试页面") 
          .onClick(() => { 
            hilog.info(0x0000, 'testTag', '%{public}s', 'click dx test page123'); 
            router.pushUrl( 
              { 
                url: "components/mainpage/TestForDx", 
                params: { "content": "这里是从前一个页面传来的数据" } 
              }, 
              router.RouterMode.Standard 
            ) 
          }) 
        Button("MTOP测试页面") 
          .onClick(() => { 
            router.pushUrl( 
              { 
                url: "MtopPlaygroundIndex", 
                params: { "content": "这里是从前一个页面传来的数据" } 
              }, 
              router.RouterMode.Standard 
            ) 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
@Entry 
@Component 
struct TextForDX { 
  build() { 
    Column() { 
      DXPlaygroundMainPage() 
    } 
    .width('100%') 
    .height('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-05-23 17:13:50
相关问题
路由实现动态页面的跳转方案
734浏览 • 1回复 待解决
路由跳转如何通过scheme方式分发
309浏览 • 1回复 待解决
Web拦截不到vue的router跳转
584浏览 • 0回复 待解决
如何实现图片点击跳转?
4146浏览 • 1回复 待解决
跨模块路由跳转的问题有知道的吗?
939浏览 • 1回复 待解决
如何实现跳转到系统设置
687浏览 • 1回复 待解决
如何实现Fraction跳转到AbilitySlice
8239浏览 • 3回复 已解决
是否能够自定义router跳转的url
542浏览 • 1回复 待解决
Page Ability 无法实现跳转
7497浏览 • 1回复 待解决
api8如何实现异步线程跳转页面?
1321浏览 • 1回复 待解决
如何实现设备内跨应用的UIAbility跳转
873浏览 • 1回复 待解决
如何实现上下切换的页面间跳转动画
848浏览 • 0回复 待解决