鸿蒙中,router切换navigation

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

    

以上是简单的router切换navigation的方式,以此记录

 

posted @ 2025-01-22 15:07  凤雏小呆  阅读(25)  评论(0)    收藏  举报