HarmonyOS开发之路由跳转

文章目录


一、路由跳转模式与实例

跳转模式 有点类似于vue的路由跳转

  • router.pushUrl 保留路由栈,保留当前的页面;
  • router.replaceUrl 销毁当前页面,跳转一个新的页面 ;
  • router.back 返回上个路由栈保存的页面;

跳转实例

  • router.RouterMode.Standard 默认模式 压入栈顶;
  • router.RouterMode.Single 如果跳转的目标页在路由栈中已经存在,那么就会将距离栈顶最近的url放到栈顶,并重新加载。如果不存在 将按照默认模式执行;

1.router.pushUrl

复制代码
import router from '@ohos.router'

//跳转到新的页面 保留当前路由栈
  router.pushUrl(
  {
      //跳转路径
      url:'pages/HomePage',
      //传递参数
       params:{id:1}
   },
       //默认模式
       router.RouterMode.Standard,
    (err) => {
     if(err){
        console.log('路由失败')
     }
   }
    )
})




//接取参数
router.getParams()['id']

2.router.replaceUrl

复制代码
import router from '@ohos.router'

//跳转到新的页面 保留当前路由栈
  router.replaceUrl (
  {
      //跳转路径
      url:'pages/HomePage',
      //传递参数
       params:{id:1}
   },
       //默认模式
       router.RouterMode.Standard,
    (err) => {
     if(err){
        console.log('路由失败')
     }
   }
    )
})




//接取参数
router.getParams()['id']

3.router.back

复制代码
import router from '@ohos.router'

    //1、直接返回
    router.back();
    
    //2、返回到指定页面
    router.back({
       url: 'pages/Info'
   });

 //3、返回到指定页面,并传递自定义参数信息
 router.back({
     url: 'pages/Info',
     params: {
      id:1
    }
 });


//4、系统默认返回询问框
   router.showAlertBeforeBackPage({
      message:'确定返回到login页面吗?'
     })
   router.back()


  
   //5、自定义询问框
   import promptAction from '@ohos.promptAction'

   promptAction.showDialog({
         message:'确定返回到login页面吗?',
         buttons: [
         {
           text: '取消',
           color: '#FF0000'
         },
          {
           text: '确认',
           color: '#0099FF'
           }
         ]
        }).then((result)=>{
          if(result.index === 0){
             console.log('点击了取消按钮')
          }else if(result.index === 1){
             // 用户点击了"确认"按钮
             console.log('用户点击了"确认"按钮')
            // 调用router.back()方法,返回上一个页面
              router.back();
            }
         }).catch(err => {
           console.error(`Invoke showDialog failed, code is ${err.code}, message is ${err.message}`);
       })
    })
相关推荐
庄雨山18 小时前
鸿蒙PC开发实战:基于Electron快速构建Web技术栈桌面应用
electron·harmonyos
智源研究院官方账号18 小时前
技术详解 | 众智FlagOS1.6:一套系统,打通多框架与多芯片上下适配
人工智能·驱动开发·后端·架构·硬件架构·硬件工程·harmonyos
弓.长.18 小时前
小白基础入门 React Native 鸿蒙跨平台开发:实现九宫格图片选择
react native·react.js·harmonyos
小风呼呼吹儿18 小时前
Flutter 框架跨平台鸿蒙开发 - 种子发芽记录器:记录植物成长的每一刻
android·flutter·华为·harmonyos
弓.长.18 小时前
小白基础入门 React Native 鸿蒙跨平台开发:ImageBackground毛玻璃背景效果
react native·react.js·harmonyos
弓.长.18 小时前
小白基础入门 React Native 鸿蒙跨平台开发:实现简单的步进器
react native·react.js·harmonyos
Miguo94well18 小时前
Flutter框架跨平台鸿蒙开发——学茶知识APP开发流程
flutter·华为·harmonyos·鸿蒙
zhujian8263718 小时前
二十九、【鸿蒙 NEXT】异步锁实现并发控制
华为·harmonyos·并发·异步锁
一起养小猫18 小时前
Flutter for OpenHarmony 实战:Dart异步编程基础Future与async-await详解
flutter·harmonyos
小白阿龙18 小时前
鸿蒙+flutter 跨平台开发——垃圾分类回收APP开发流程
flutter·华为·harmonyos·鸿蒙