鸿蒙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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值