鸿蒙中,router切换navigation
- ability中定义的主页,
- @Entry @Component 修饰页面
- 需要在成员变量位置创建一个NavPathStack对象 navPathStack:NavPathStack=new NavPathStack(),作为页面路由的载体
- build()方法中,增加根标签Navigation,需要引用这个navPathStack对象,同时将原有根标签整体迁移到新的根标签内部,
- 页面生命周期变动:show hide backpress方法实现需要更改到Navigation的标签方法中对应的 hide show backpress属性方法中,aboutToApera和aboutToDisApera可以继续使用
- 普通页面,
- @Component修饰页面
- 需要@Builder修饰页面构造器,同时需要通过export导出,页面也需要通过export导出,以供其他模块跳转
- build()方法中,增加根标签NavDestination,将原有根标签整体迁移到新的根标签内部
- 页面生命周期变动:show hide backpress方法实现需要更改到Navigation的标签方法中对应的 hide show backpress属性方法中,aboutToApera和aboutToDisApera可以继续使用
- 如果需要用到路由的NavPathStack对象,建议可以在页面的aboutToApera方法中,通过api this.queryNavigationInfo().pathStack 获取到路由载体对象,用来进行页面跳转、返回等操作
- 需要在模块的module.json5中,增加 routerMap 属性,列出所有的普通page页面,每个页面最少需要定义出页面的 name-自定义页面名称,用来跳转 pageSourceFile-指定页面的路径 buildFunction-指定页面的构造器 三个属性
以上是简单的router切换navigation的方式,以此记录

浙公网安备 33010602011771号