鸿蒙 - arkTs: 页面路由

页面栈最大容量为32,使用router.clear()可以清空页面栈,释放资源

跳转方式:

  1. router.pushUrl:目标页压入页面栈,使用router.back()可以返回上个页面。
  2. router.replaceUrl:目标页替换当前页,会清空页面栈,释放资源;无法返回上个页面。

实例模式:

  1. Standard:(默认)标准实例模式,每次跳转都会创建一个目标页压入栈顶。
  2. Single:单实例模式,如果目标页已经存在于栈中,则离栈顶最近的同url页面会被移动到栈顶并重新加载

使用示例:

index.ets页面代码:

import router from '@ohos.router';

@Entry
@Component
struct Index {
  build() {
    Column() {
      Button('跳转页面')
        .onClick(()=>{
          // 路由跳转
          router.pushUrl(
            {
            url: 'pages/Header', // 路由地址
            params: {id: '996'} // 携带参数
          },
            router.RouterMode.Single,
            err => {
              if(err){
                console.log(JSON.stringify(err))
              }
            }
          )
        })
    }
  }
}

Header.ets页面代码:

import router from '@ohos.router'

@Entry
@Component
struct Header {
  // 接收页面参数
  params: any = router.getParams()

  build(){
    Row() {
      Text(this.params.id) // 展示参数
        .fontSize(30)
      Button('返回上个页面')
        .onClick(()=>{
          // pushUrl跳转情况下可以返回上个页面
          router.back()
        })
    }
  }
}
相关推荐
李游Leo2 小时前
自学记录HarmonyOS Next DRM API 13:构建安全的数字内容保护系统
安全·华为·harmonyos
李游Leo2 小时前
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
学习·华为·harmonyos
轻口味6 小时前
【每日学点鸿蒙知识】渐变效果、Web组件注册对象报错、深拷贝list、loadContent数据共享、半屏弹窗
前端·list·harmonyos
轻口味6 小时前
【每日学点鸿蒙知识】子窗口方向、RichEdit不居中、本地资源缓存给web、Json转对象丢失方法、监听状态变量数组中内容改变
前端·缓存·harmonyos
二流小码农6 小时前
鸿蒙开发:自定义一个英文键盘
android·ios·harmonyos
二流小码农6 小时前
鸿蒙开发:自定义一个股票代码选择键盘
android·ios·harmonyos
鸿蒙自习室7 小时前
鸿蒙UI开发——全局自定义弹窗实现
ui·华为·harmonyos·鸿蒙
塞尔维亚大汉8 小时前
【OpenHarmony】 鸿蒙 UI动画开发之ohos-svg
harmonyos·arkui
轻口味8 小时前
【每日学点鸿蒙知识】图片base64、最先hap包下载、RN获取定位、app安装、SNAPSHOT组件管理
华为·harmonyos