概述:
HMRouter作为HarmonyOS的页面跳转场景解决方案,聚焦解决应用内原生页面的跳转逻辑。
HMRouter底层对系统Navigation进行封装,集成了Navigation、NavDestination、NavPathStack的系统能力,
提供了可复用的路由拦截、页面生命周期、自定义转场动画,
并且在跳转传参、额外的生命周期、服务型路由方面对系统能力进行了扩展。
特性:
基于注解声明路由信息 注解中页面路径支持使用字符串常量定义 支持Har、Hsp、Hap 支持Navigation路由栈嵌套 支持服务型路由 支持路由拦截器(包含全局拦截、单页面拦截、跳转时一次性拦截) 支持生命周期回调(包含全局生命周期、单页面生命周期、跳转时一次性生命周期、NavBar生命周期) 内置转场动画(页面、Dialog),可配置方向、透明度、缩放,支持交互式转场动画,同时支持配置某个页面的转场动画、跳转时的一次性动画 支持Dialog类型页面、支持单例页面
下载安装:
方法一:使用ohpm安装依赖
ohpm install @hadss/hmrouter
方法二:修改oh-package.json5
{ "dependencies": { "@hadss/hmrouter": "^1.0.0-rc.5" } }
使用配置:
一、编译插件配置
①、修改项目的hvigor/hvigor-config.json
文件,加入路由编译插件
{ "modelVersion": "5.0.0", "dependencies": { "@hadss/hmrouter-plugin": "latest" // 使用最新 } }
②、在模块中引入路由编译插件,修改hvigorfile.ts文件
import { hapTasks } from '@ohos/hvigor-ohos-plugin'; import { hapPlugin } from '@hadss/hmrouter-plugin'; export default { system: hapTasks, plugins: [hapPlugin()] // 使用HMRouter标签的模块均需要配置,与模块类型保持一致 }
注:如果模块是Har则使用harPlugin()
, 模块是Hsp则使用hspPlugin()
二、工程配置
由于拦截器、生命周期和自定义转场动画会在运行时动态创建实例,因此需要进行如下配置,使得HMRouter路由框架可以动态导入项目中的模块
1、在工程目录下的build-profile.json5
中,配置useNormalizedOHMUrl
属性为true
2、在oh-package.json5
中配置对Har和Hsp的依赖,这里需要注意依赖的模块名称需要与模块的moduleName保持一致。
{ "dependencies": { "AppHar": "file:../AppHar", // AppHar库可以正确动态创建拦截器、生命周期和自定义转场动画对象 "@app/har": "file:../AppHar" // 错误使用方式,无法动态创建对象 } }
相关文档:
标签:生命周期,简介,HMRouter,四十,模块,跳转,路由,页面 From: https://www.cnblogs.com/xqxacm/p/18560239