HarmonyOS 开发学习笔记-四、页面路由

时间:2024-02-15 18:01:18

页面路由是指在应用程序中实现不同页面之间的跳转和数据传递
在这里插入图片描述

  • 页面栈的最大容量上限为32个页面使用router.clear()方法可以清空页面栈,释放内存
  • Router有两种页面跳转模式,分别是:
    • router.pushUrl(): 目标页不会替换当前页,而是压入页面栈,因此可以用router.back()返回当前页
    • router.replaceUrl(): 目标页替换当前页,当前页会被销毁并释放资源,无法返回当前页
  • Router有两种页面实例模式,分别是:
    • Standard :标准实例模式,每次跳转都会新建一个目标页并压入栈顶。默认就是这种模式
    • Single:单实例模式,如果目标页已经在栈中,则离栈顶最近的同Ur亿页面会被移动到栈顶并重新加载

使用:

  1. 首先要导入HarmonyOS提供的Router模块
    import router from  '@ohos .router';
    
  2. 然后利用router实现跳转、返回等操作
// 跳转到指定路径,并传递参数
router.pushUrl({
	/*
	RouterOptions
	- url:目标页面路径
	- params:传递的参数(可选)
	*/	
	url:'pages/ImagePage'
		params: {id: 1}
	},
	//页面模式:RouterMode枚举
	router.RouterMode.Single
	err =>{
	/*
	异常响应回调函数,错误码:
	- 100001:内部错误,可能是染失败
	- 100002:路由地址错误
	- 100003:路由栈中页面超过32 
	*/
		if(err){
		console.log('路由失败。')
		}
})
//获取传递过来的参数
params: any = router.getParams()
// 返回上一页
router.back()
//返回到指定页,并携带参数
router.back({
	url: 'pages/Index',
	params: {id: 10}
})