当前位置: 首页 > article >正文

HarmonyOS开发之路由跳转

文章目录

  • 一、路由跳转模式与实例
    • 1.router.pushUrl
    • 2.router.replaceUrl
    • 3.router.back


一、路由跳转模式与实例

跳转模式 有点类似于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}`);
       })
    })



http://www.kler.cn/news/304406.html

相关文章:

  • react js 处理表单( form )的2个例子
  • 基于Springboot的鲜花销售网站的设计与实现
  • Git版本控制工具
  • 如何模拟一个小程序项目打包的流程
  • php 实现JWT
  • 用于客户支持的 GenAI:探索 Elastic Support Assistant
  • 如何让Windows控制台窗口不接受鼠标点击(禁用鼠标输入)
  • 前端工程师职业发展路线图
  • MADE A PIE 之动态树形图
  • 解决Docker镜像不可下载
  • 【GBase 8c V5_3.0.0 分布式数据库常用几个SQL】
  • 使用 Node Media Server 和 FFmpeg 创建直播流,推送本地视频
  • 在 Mac 上安装双系统会影响性能吗,安装双系统会清除数据吗?
  • 使用VSCode 安装SAP Fiori 开发所需插件
  • el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能
  • Qt 构建报错 undefined reference to xxx
  • C++字符串中的string类操作
  • Humanize AI 简介
  • C和指针:函数
  • Leetcode 701-二叉搜索树中的插入操作
  • 安卓开发板_联发科MTK开发板使用ADB开发
  • Excel--不规则隔行填充底纹颜色
  • 【动手学深度学习】08 线性回归 + 基础优化算法(个人向笔记)
  • SpringCloud神领物流学习笔记:项目概述(一)
  • 计算机网络 ---如何寻找目标计算机
  • C语言——双指针法求有序数组的平方
  • Linux:五种IO模型
  • 学习笔记 韩顺平 零基础30天学会Java(2024.9.13)
  • 智能听诊器:打造宠物个性化健康生活
  • 数学基础 -- 概率统计之高斯分布