# 动态路由 **Repository Path**: yuguoxy/dynamic-routing ## Basic Information - **Project Name**: 动态路由 - **Description**: 动态路由案例,纯代码实现路由跳转 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2025-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Navigation动态路由 ### 介绍 本项目提供动态路由的验证,运用了WrapperBuilder的自定义函数打包能力,以及动态路由的跨模块文件引用的能力,解除了har包和hap包的依赖关系,实现了 即使hap包不引用har包,依然能跳转到har包中的页面的能力 目前还不支持动态import变量表达式和跨模块相对路径的文件,所以代码中使用switch作为替代,若后续版本支持,会出相应的补丁 由于环境的差异,不建议下载后直接编译,应先当创建项目,参考示例代码进行编写 ### 效果预览 ![image](D:/projects/DevEcoStudioProjects/dynamicRouter/code/BasicFeature/ApplicationModels/DynamicRouter/images/Index.jpg) ![image](D:/projects/DevEcoStudioProjects/dynamicRouter/code/BasicFeature/ApplicationModels/DynamicRouter/images/HarA.jpg) ![image](D:/projects/DevEcoStudioProjects/dynamicRouter/code/BasicFeature/ApplicationModels/DynamicRouter/images/HarB.jpg) 使用说明 1. 主页会提供一个NavIndex的导航页,点击按钮会跳转到不同的来自har包的页面 2. 每个har包的页面也存在跳转到别的页面的按钮 ### 工程目录 ``` . ├── entry // 主页面 │ ├── pages │ │ ├── Index.ets │ ├── entryability │ │ ├── EntryAbility.ets ├── harA │ ├── pages │ │ ├── page1.ets │ │ ├── page2.ets │ │ ├── page3.ets │ ├── entryability │ │ ├── EntryAbility.ets ├── harB │ ├── pages │ │ ├── page1.ets │ │ ├── page2.ets │ │ ├── page3.ets │ ├── entryability │ │ ├── EntryAbility.ets ├── RouterModule │ ├── utils │ │ ├── RouterModule.ets │ ├── entryability │ │ ├── EntryAbility.ets . ``` ### 具体实现 1.创建hapA harA harB 2.创建路由框架RouterModule,使用map存储hap包的路由和har包的页面信息 3.在RouterModule中封装get和set方法,并对外开放,允许外部模块引用和调用 4.创建push方法,允许传入一串url,并对其进行解析,通过拆解出路由名称从map中获取到路由栈,并将目标页面压栈 5.在hap和har包中引入RouterModule,将hap包的路由栈和har包的页面信息通过开放的set方法存入RouterModule ### 相关权限 不涉及