- 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
字段,避免扫描所有目录和模块,影响工程编译效率。
- Builder函数支持参数传递
- 同时支持工程级和模块级两种方式配置;
- 支持项目
clean
时自动删除编译产物; - 优化构建效率,减少不必要的场景扫描构建生成;新增配置项
ignoredModules
,工程级配置可设置忽略模块,避免扫描所有模块;新增配置项enableUiPreviewBuild
,避免在ui预览构建时生成, 影响ui预览效率。
- 当
@Route
注解不设置任何属性时,默认生成的路由名称为当前页面的类名; - 修复一些已知问题。
-
NavDestination
页面模板化的生命周期实现类属性支持全局和单个页面自定义命名。
- 修复
NavDestination
页面模板化的问题; - 配置新增lifecycleObserverAttributeName字段,用于
NavDestination
页面模板化自定义lifecycleObserver属性名称;
- 支持
NavDestination
页面模板化; - 修复
dependencies
依赖路径存在空格而导致常量查找失败的问题。
- 修复删除历史编译产物问题
- 对扫码的目录进行安全校验
- 优化路由表的生成
- 支持服务路由。
- 优化
@Route
装饰器上的常量查找逻辑; - 配置新增
scanDirs
字段,支持配置多个扫描目录,~~scanDir~~
字段已设过期状态; - 配置新增
isAutoDeleteHistoryFiles
字段,用于是否自动删除无用编译产物。
-
@Route
装饰器上的name
属性支持常量设置,支持跨模块定义。
- 修改生成文件的名称,统一加前缀ZR,适配混淆;
- 支持自动删除历史残余文件。
- 修复部分
windows
系统下编译报错问题 - 删除模块下
Index.ets
导出 - 修改
Builder
函数生成的文件路径,避免加载所有的组件; - 如果插件不生效,关闭IDE并清缓存重启。
大家使用中有疑问或者建议,可以扫码或加v(751496032)进群交流,备注鸿蒙ZRouter