前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >鸿蒙原生应用如何路由传参

鸿蒙原生应用如何路由传参

作者头像
徐建国
发布2024-01-17 18:27:07
3660
发布2024-01-17 18:27:07
举报
文章被收录于专栏:个人路线个人路线

作者:坚果 团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有8个华为HDE,3个HSD,以及若干其他领域的三十余位万粉博主运营。 本人为华为HDE、中国计算机学会CCF专业会员、OpenHarmony布道师、开发者联盟优秀讲师、2023年开源之夏导师、2023年OpenHarmony应用创新赛导师、RISC-V+OpenHarmony应用创意赛导师、OpenHarmony三方库贡献者、开放原子开源基金会技术+生态贡献者第一批开放原子开源讲师、OpenHarmony校源行开源大使、InfoQ签约作者、团队成员聚集在北京,上海,南京,深圳,广州,宁夏等地,欢迎合作。

运行环境

DAYU200:4.0.10.16

SDK:4.0.10.15

IDE:4.0.600

首页

第一步,导入路由模块

代码语言:javascript
复制
import router from '@ohos.router'

第二步,定义Class类

代码语言:javascript
复制
export class Person {
  id: number
  name: string
}

第三步params传递参数

代码语言:javascript
复制
     Button("路由传参").onClick(() => {

          router.pushUrl({
            url: "pages/RouterPage",
            params: {
              id: 1,
              name: "坚果"

            }
          })
        })

第二种形式

代码语言:javascript
复制
Button("路由传参").onClick(() => {

  let Person: Person = {
    id: 1,
    name: "坚果"
  }

  router.pushUrl({
    url: "pages/RouterPage",
    params: Person


  })
}

详情页

第一步,导入模块

代码语言:javascript
复制
import router from '@ohos.router'

第二步定义类

代码语言:javascript
复制
export class Person {
  id: number
  name: string
}

第三步使用 router.getParams()传参

代码语言:javascript
复制
 router.getParams()

第四步

代码语言:javascript
复制
import router from '@ohos.router'

export class Person {
  id: number
  name: string
}

@Entry
@Component
struct RouterPage {
  @State router: Person = router.getParams() as Person

  build() {
    Row() {
      Column() {
        Text(this.router.name)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

总结

这上面的路由传参不仅可以用到router模块。navigator组件同样适用。

Navigator示例

代码语言:javascript
复制
Navigator({ target: "pages/RouterPage" }) {

  Text("路由跳转")


}

设置跳转类型

代码语言:javascript
复制
Navigator({ target: "pages/RouterPage", type: NavigationType.Push }) {

  Text("路由跳转")


}

携带参数

代码语言:javascript
复制
 Navigator({ target: "pages/RouterPage", type: NavigationType.Push }) {

    Text("路由跳转")


  }.params(Person)

}

下面两种是等价的

代码语言:javascript
复制
Navigator({ target: "pages/RouterPage", type: NavigationType.Push }) {

  Text("路由跳转")


}

Text("路由跳转").onClick(() => {

  router.pushUrl({
    url: "pages/RouterPage"
  })
})
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运行环境
  • 首页
  • 详情页
  • 总结
  • Navigator示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档