HarmonyOS学习之路--页面路由篇

一.基本概述

1.页面路由

页面路由是指在应用程序中实现不同页面之间的跳转数据传递

2.页面栈

我们访问过的所有页面都会被HarmonyOS保存到一个名为页面栈的空间当中

我们访问的页面会压入栈顶,如果一直访问新页面,访问一次压入一个,栈里面的页面会越来越多,因此HarmonyOS给页面栈加了容量的上限:32个页面.使用router.clear()方法可以清空页面栈,释放内存 .

二.页面跳转模式

Router有两种页面跳转模式,分别是:
1.router.pushUrl():

目标页不会替换当前页,而是压入页面栈,因此可以用router.back()返回当前页 2.router.replaceUrl():

目标页替换当前页,当前页会被销毁并释放资源,无法返回当前页

三.页面实例模式

Router有两种页面实例模式,分别是:
1.Standard: 标准实例模式,每次跳转都会新建一个目标页并压入栈顶。默认就是这种模式
2.Single: 单实例模式,如果目标页已经在栈中,则离栈顶最近的同Url页面会被移动到栈项并重新加载

四.router使用步骤

1.首先要导入HarmonyOS提供的Router模块:

import router from '@ohos.router';

2.然后利用router实现跳转、返回等操作:

//跳转到指定路径,并传递参数       
router.pushUrl(    
    {
      url: 'pages/ImagePage',
      params: {id: 1}
},
router.RouterMode.Single,
err => { 
    if(err){ 
        console.log('路由失败.')
        }
    }
}
// RouterOptions
// - url: 目标页面路径
// - params:传递的参数(可选)
// 页面模式:RouterMode枚举
// 异常响应回调函数,错误码:
//-100001:内部错误,可能是渲染失败
// 100002:路由地址错误
// - 100003:路由栈中页面超过32
     
// 获取传递过来的参数
 params: any =    
           router.getParams()      
//返回上一页    
router.back()    
//返回到指定页,并携带参数    
router.back(    
{ 
    url: 'pages/Index'
    params: {id: 10} 
    }
}

注:其中url需要在 base/main_pages.json中配置页面
//格式如下:
 

{
   "src": [    
      "pages/Index",
      url: 'pages/ImagePage'

    ]
 }
// 返回确认提示  

 router.showAlertBeforeBackPage({    

        message:'支付还未完成,确定返回吗?    

})
//返回上一页
router.back()

利用返回确认提示,避免因失误导致不必要的返回,提高用户使用感受,点击确认才会返回,示例如下:

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值