鸿蒙HarmonyOS NEXT实战开发:自动生成动态路由实现案例

介绍

本示例将介绍如何使用装饰器和插件,自动生成动态路由表,并通过动态路由跳转到模块中的页面,以及如何使用动态import的方式加载模块。

使用说明

  1. 自定义装饰器
  2. 添加装饰器和插件配置文件,编译时自动生成动态路由表
  3. 配置动态路由,通过WrapBuilder接口,动态创建页面并跳转。
  4. 动态import变量表达式,需要DevEco Studio NEXT Developer Preview1 (4.1.3.500)版本IDE,配合hvigor 4.0.2版本使用。

实现思路

  1. 初始化动态路由

     public static routerInit(config: RouterConfig, context: Context) {
       DynamicsRouter.config = config;
       DynamicsRouter.appRouterStack.push(HOME_PAGE);
       RouterLoader.load(config.mapPath, DynamicsRouter.routerMap, context);
     }
  2. 获取路由

    private static getNavPathStack(): NavPathStack {
      return DynamicsRouter.navPathStack;
    }
  3. 通过builderName,注册WrappedBuilder对象,用于动态创建页面

    private static registerBuilder(builderName: string, builder: WrappedBuilder<[object]>): void {
      DynamicsRouter.builderMap.set(builderName, builder);
    }
  4. 通过builderName,获取注册的WrappedBuilder对象

    public static getBuilder(builderName: string): WrappedBuilder<[object]> {
      let builder = DynamicsRouter.builderMap.get(builderName);
      if (!builder) {
        let msg = "not found builder";
        console.info(msg + builderName);
      }
      return builder as WrappedBuilder<[object]>;
    }
  5. 通过页面栈跳转到指定页面

    public stat

你可能感兴趣的:(鸿蒙next实战,鸿蒙,harmonyos,华为,鸿蒙,鸿蒙系统,android)