页面跳转(页面路由)

1.跳转到应用内的指定页面  

pushUrl 是直接指定页面跳转可以返回上一级页面,若是来回切换页面,页面栈会长度会一直增加知道页面栈长度超过32,应用可能会崩溃。

//ArkTS

Text('第一个页面')
.onclick(
() => {
router.pushUrl({
  url: 'pages/routerpage2', //页面地址需要有Entry入口且在main.json5中有页面路径存在才能实现跳转
  params: {id : 1}//跳转是想要给到下一个页面的参数
}
})



router.getparams()接收路由传递的参数

注意:路由传递参数 是要传递一个对象,且接收参数的时候也要是对象,在接收页面设置一个包含传递参数的对象类型

当要传递对象时写为:params : object

当传递简单类型数据时写为:params : {id : number}

且接收参数时 传什么就接什么不可写错

interface  RouterParam{ 

id:number

}

//第二个页面接收参数
interface RouterParam{
id : number }

@Entry
@Component
struct Index{
//在组件被创建的时候获取路由参数
aboutToAppear:void{
const res = router.getParams() as RouterParam
AlertDialog.show({message : res.id.tostring()})//通过弹窗看一下是否拿到数据
}
build {
  Text('第二个页面')
}
}
2.应用内的某个页面替换当前页面,并销毁被替换的页面。

replaceUrl是替换当前页面不能返回上一级页面,页面栈页面不会重复增加

router.replaceUrl({url: 'pages/detail',params: new routerParams('message')}

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐