router-register-plugin
Version:
鸿蒙ZRouter动态路由框架插件
153 lines (94 loc) • 6.98 kB
Markdown
## ZRouter
- github:https://github.com/751496032/ZRouter
- gitee:https://gitee.com/common-apps/ZRouter
- 掘金:https://juejin.cn/post/7394094789287067685
## 基本使用
### 安装
**在鸿蒙项目根目录的hvigor目录下的`hvigor-config.json5`文件中配置安装**
```
"dependencies": {
"router-register-plugin":"x.x.x"
},
```
最后记得Sync Now或重新build让插件安装生效。
### 配置
支持两种配置方式:
- **工程级配置**: 即在工程根目录下的hvigorfile.ts文件中全局配置;
- **模块级配置**:即在每个模块目录下的hvigorfile.ts文件中单独配置;
> 不建议一个项目同时使用两种配置方式,虽然是这种混合方式也是支持的,但容易出现配置冲突。模块级配置相对繁琐些,但配置项会更精细化些。
步骤:
```
// 1、导入
import { routerRegisterPlugin, PluginConfig } from 'router-register-plugin'
// 2、初始化配置
const config: PluginConfig = {
scanDirs: ['src/main/ets/pages', 'src/main/ets/views'], // 扫描的目录,如果不设置,默认是扫描src/main/ets目录
logEnabled: true, // 查看日志
viewNodeInfo: false, // 查看节点信息
ignoredModules:['RouterApi','common','xxx'], // 忽略的参与构建的模块,根据自己项目自行设置
enableUiPreviewBuild: false, // 启用UI预览构建,不建议启动
}
export default {
// 3、添加插件
plugins:[routerRegisterPlugin(config)]
}
```
> **注意:hvigorfile.ts文件中默认配置不要删除了。**
配置参数说明:
| 参数名 | 类型 | 默认值 | 描述 |
|----------------------------------|----------|-------------------|------------------------------------------------------------------------------|
| `scanDirs` | string[] | ['src/main/ets'] | 扫描的目录,如果不设置,默认是扫描src/main/ets目录。建议配置该字段,避免扫描所有目录,影响工程编译效率** | |
| `logEnabled` | boolean | true | 是否打印日志 | |
| `viewNodeInfo` | boolean | false | 查看节点信息,只有与logEnable同时为true才会打印输出 |
| ~~`isAutoDeleteHistoryFiles`~~ | boolean | false | 是否在构建时删除编译产物,已弃用,在项目`clean`自动删除无用编译产物,请不要设置此参数。 | |
| `lifecycleObserverAttributeName` | string | lifecycleObserver | 如果使用了NavDest页面模板化功能,该配置字段会生效,默认属性名是lifecycleObserver,也可以在@Route注解上单独设置这个属性 |
| **`ignoredModules`** | string[] | [] | 忽略需要扫描的模块,填写模块名称,默认是全部模块;**插件在工程级时使用**,该字段才会生效。**建议配置该字段,避免扫描所有模块,影响工程编译效率** |
| `enableUiPreviewBuild` | boolean | false | 是否在ui预览构建时生成,默认不启用, 会降低ui预览构建效率 |
> **注意:** 以上配置参数都是可选的,建议配置`scanDirs`和`ignoredModules`字段,避免扫描所有目录和模块,影响工程编译效率。
## 更新记录
### 1.8.2 / 2025-9-4
- 修复在`DevEco 5.1.1`版本下`clean`任务报错问题
### 1.8.0 / 2025-8-31
- 支持路由表预加载;
- 优化`clean`任务。
### 1.6.0 / 2025-6-27
- Builder函数支持参数传递
### 1.5.0 / 2025-5-25
- 同时支持工程级和模块级两种方式配置;
- 支持项目`clean`时自动删除编译产物;
- 优化构建效率,减少不必要的场景扫描构建生成;新增配置项`ignoredModules`,工程级配置可设置忽略模块,避免扫描所有模块;新增配置项`enableUiPreviewBuild`,避免在ui预览构建时生成, 影响ui预览效率。
### 1.3.2 / 2025-4-20
- 当`@Route`注解不设置任何属性时,默认生成的路由名称为当前页面的类名;
- 修复一些已知问题。
### 1.3.0 / 2024-12-24
- `NavDestination`页面模板化的生命周期实现类属性支持全局和单个页面自定义命名。
### 1.2.1 / 2024-12-19
- 修复`NavDestination`页面模板化的问题;
- 配置新增lifecycleObserverAttributeName字段,用于`NavDestination`页面模板化自定义lifecycleObserver属性名称;
### 1.2.0 / 2024-12-8
- 支持`NavDestination`页面模板化;
- 修复`dependencies`依赖路径存在空格而导致常量查找失败的问题。
### 1.1.1
- 修复删除历史编译产物问题
### 1.1.0
- 对扫码的目录进行安全校验
- 优化路由表的生成
### 1.0.9
- 支持服务路由。
### 1.0.8
- 优化`@Route`装饰器上的常量查找逻辑;
- 配置新增`scanDirs`字段,支持配置多个扫描目录,`~~scanDir~~`字段已设过期状态;
- 配置新增`isAutoDeleteHistoryFiles`字段,用于是否自动删除无用编译产物。
### 1.0.7
- `@Route`装饰器上的`name`属性支持常量设置,支持跨模块定义。
### 1.0.6
- 修改生成文件的名称,统一加前缀ZR,适配混淆;
- 支持自动删除历史残余文件。
### 1.0.5
- 修复部分`windows`系统下编译报错问题
- 删除模块下`Index.ets`导出
- 修改`Builder`函数生成的文件路径,避免加载所有的组件;
- 如果插件不生效,关闭IDE并清缓存重启。
## 其他
大家使用中有疑问或者建议,可以扫码或加v(751496032)进群交流,备注鸿蒙ZRouter
