鸿蒙4.0开发笔记之DevEco Studio页面操作router的pushUrl页面跳转与back返回上一页(五)

一、认识组件

关于HarmonyOS中ArkTS的基础组件请参见文章鸿蒙4.0开发笔记之ArkTs语言基础与基本组件结构(四)

二、实现页面跳转pushUrl

1、操作说明

实现页面跳转的核心便是router.pushUrl的调用,操作起来也很简单,总共就四步。实现步骤如下:

(1)在项目列表的page目录下创建一个新的页面

(2)创建button,并设定基本属性方法

(3)给button添加onclick事件方法

(4)在事件方法中调用router.pushUrl()事件方法,并设定需要跳转的页面的路径。

typescript 复制代码
.onClick(()=>{
          //执行跳转到Target页面:使用router路由可以指定跳转到某个url页面
          router.pushUrl({
            //在entry>src>main>resources>base>profile>main_pages.json中可以找到整个项目所有的页面
            url:"pages/Target"
          })
        })

注意:可以在项目路径下的entry>src>main>resources>base>profile>main_pages.json中找到整个项目所有的页面。

2、实现代码
typescript 复制代码
import router from '@ohos.router'
@Entry
@Component
struct Arrow {
  @State message: string = '鸿蒙Next'

  build() {
    Column() {
      Text(this.message)
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      Button('点我跳转')
        .fontSize(30)
        .width('50%')
        .height('50vp')
        //跳转页面动作
        .onClick(()=>{
          //执行跳转到Target页面:使用router路由可以指定跳转到某个url页面
          router.pushUrl({
            //在entry>src>main>resources>base>profile>main_pages.json中可以找到整个项目所有的页面
            url:"pages/Target"
          })
        })
    }

    //设置Column容器的宽、高
    .width('100%')
    .height('100%')
  }
}

最终的实现效果就是,点击页面上的"点我跳转"按钮,就会成功跳转到"Target"页面。

三、返回上一个页面back

当页面跳转到"Target"页面后,如何在该页面返回到上一个页面呢?

其实只需要调用一个router.back()事件方法就OK了。实现代码如下:

typescript 复制代码
import router from '@ohos.router'
@Entry
@Component
struct Target {
  @State message: string = '无际鹰'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .fontStyle(FontStyle.Italic)
          .backgroundColor(Color.Blue)
          .fontColor(Color.Orange)
          .onClick(()=>{
            //返回上一个页面,及从哪里跳转来的,就回到哪里去
            router.back()
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

这样的整体效果就是,在Arrow页面上点击页面上的"点我跳转"按钮,就会成功跳转到Target页面;然后在Target页面点击"无际鹰"就会跳转回Arrow页面。

相关推荐
sheeta199811 分钟前
苍穹外卖Day05笔记
笔记
想搞艺术的程序员12 分钟前
Java Survivor区学习笔记
java·笔记·学习·垃圾回收
不能隔夜的咖喱16 分钟前
all-in-rag零散的笔记(自存/持续更新)
笔记
-Springer-25 分钟前
STM32 学习 —— 个人学习笔记9-2(USART串口数据包 & 串口收发 HEX 及 文本 数据包)
笔记·stm32·学习
加农炮手Jinx26 分钟前
Flutter 组件 ubuntu_service 适配鸿蒙 HarmonyOS 实战:底层系统服务治理,构建鸿蒙 Linux 子系统与守护进程交互架构
flutter·harmonyos·鸿蒙·openharmony·ubuntu_service
里欧跑得慢27 分钟前
Flutter 三方库 mobx_codegen — 自动化驱动的高性能响应式状态管理(适配鸿蒙 HarmonyOS Next ohos)
flutter·自动化·harmonyos
celeste031030 分钟前
Redis Summary
linux·运维·服务器·redis·笔记
王码码203531 分钟前
Flutter 三方库 login_client 的鸿蒙化适配指南 - 打造工业级安全登录、OAuth2 自动化鉴权、鸿蒙级身份守门员
flutter·harmonyos·鸿蒙·openharmony·login_client
星辰徐哥33 分钟前
鸿蒙金融理财全栈项目——上线与运维、用户反馈、持续迭代
运维·金融·harmonyos
加农炮手Jinx33 分钟前
Flutter 三方库 cloudflare 鸿蒙云边协同分发流适配精讲:直连全球高速存储网关阵列无缝吞吐海量动静态画像资源,构筑大吞吐业务级网络负载安全分流-适配鸿蒙 HarmonyOS ohos
网络·flutter·harmonyos