# fwrouter **Repository Path**: FantasyWind/fwrouter ## Basic Information - **Project Name**: fwrouter - **Description**: HarmonyOS系统应用开发路由组件。 支持页面路由(单router模式、单Navigation模式、混合模式)和服务路由功能调用。 支持路由自动注册,自动导入。 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 27 - **Forks**: 4 - **Created**: 2024-06-24 - **Last Updated**: 2024-12-24 ## Categories & Tags **Categories**: harmonyos-advanced **Tags**: HarmonyOS组件, ArkTS, 路由, Router, OpenHarmony组件 ## README # @fw/router #### 介绍 HarmonyOS系统应用开发路由组件,支持页面路由(单router模式、单Navigation模式、混合模式)和服务路由功能调用。 #### 功能与特性 - 页面路由支持多种模式(router模式,Navigation模式,混合模式); - router模式支持打开非命名路由页面; - 支持页面打开(push/replace),参数传递;关闭页面,返回指定页面,获取返回值,跨页面获取返回值; - 支持服务路由,可使用路由url调用公共方法,达到跨技术栈调用以及代码解耦的目的; - 支持页面路由/服务路由通过装饰器自动注册; - 支持动态导入(在打开路由时才import对应har包),支持自定义动态导入逻辑; - 支持添加拦截器(打开路由,关闭路由,获取返回值); - Navigation模式下支持自定义Dialog对话框; #### 版本支持 **目前支持的api版本**:api12 #### 系统router、Navigation和@fw/router功能比较 | 功能 | @ohos.router | Navigation | @fw/router | |--------------|--------------|------------|--------------------| | 命名路由 | entry中不支持 | 需要配置路由表 | @Entry+自定义装饰器 | | 自动注册 | 支持 | 需要配置路由表 | @Entry+Hvigor插件 | | 页面返回值 | 不支持 | 支持 | 支持 | | 服务路由 | 不支持 | 不支持 | 支持 | | 动态导入 | 不支持 | 需要配置路由表 | 支持 | | TabBar嵌入页面解耦 | 不支持 | 不支持 | 可使用routeName直接获取页面 | | 拦截器 | 不支持 | 支持 | 支持 | | 全局自定义Dialog | 不支持 | 支持 | 支持 | #### 安装 ```shell ohpm install @fw/router ``` #### 使用说明 请查看[功能使用说明](./router/README.md) **常见问题请参看:**[Q&A](./Q&A.md) #### 工程结构说明 ``` . ├── entry // 演示DEMO主工程 ├── entryForOnlyNavigation // 演示纯Navigation项目的工程 ├── entryForOnlyRouter // 演示纯router项目的工程 ├── libraryHar // 调起功能测试代码模块-har包 ├── libraryHarDemo // 实现路由功能的代码模块-har包 ├── plugins // 插件代码 └── router // @fw/router框架代码 ``` #### @fw/router代码结构 ``` . ├── FWNavigation.ets // 封装系统Navigation,给router页面附加Navigation页面管理能力 ├── RouterDefine.ts // router组件类型定义 ├── RouterInterceptorManager.ets // 路由组件拦截器管理类 ├── RouterManager.ets // 路由组件管理类,解耦方法调用三种路由管理类和拦截器 ├── RouterManagerForNavigation.ets // 对接Navigation能力的路由组件管理类 ├── RouterManagerForService.ts // 对接服务能力的路由组件管理类 └── RouterManagerForSystemRouter.ts // 对接系统router能力的路由组件管理类 ``` #### 沟通交流 wx群交流 群二维码 群二维码2 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request