首页 > 其他分享 >学习笔记(四十):HMRouter简介和配置

学习笔记(四十):HMRouter简介和配置

时间:2024-11-21 11:21:12浏览次数:1  
标签:生命周期 简介 HMRouter 四十 模块 跳转 路由 页面

概述:

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简介

标签:生命周期,简介,HMRouter,四十,模块,跳转,路由,页面
From: https://www.cnblogs.com/xqxacm/p/18560239

相关文章

  • 【Linux】僵尸进程、进程状态简介
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口| 精选文章 | Kubernetes |Docker|Linux |羊毛资源 | 工具推荐 |往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决......
  • HarmonyOS 开发实践 —— 基于HMRouter的路由跳转方案
    ......
  • 鸿蒙hvigor构建任务依赖与生命周期简介
    Hivgor脚本文件在构建的生命周期中Hvigor使用两个脚本文件来完成插件、任务以及生命周期hook的注册:hvigorconfig.ts:此文件在整个项目中只有根目录下存在一份,不是构建必须的文件并且默认不存在,如有需要可自行创建,此文件被解析执行的时间较早,可用于在Hvigor生命周期刚开始时操作......
  • 从零搭建UVM验证平台 简介
    搭建UVM流程:定义interface。Interface是连接DUT和验证平台的桥梁,根据DUT的输入输出参数定义interface,在top_tb里连接interface和DUT。加入transaction。transaction是一个数据包,transaction由sequence产生,通过sequencer传递给driver。加入driver。Driver负责将接收到的tr......
  • 从五种网页布局到八种常用布局四十二种CSS方法
    /*contentstyleend*//*五种布局一、流式布局相对于屏幕大小设置元素百分百自适应。float:right或left二、网格布局Grid二位表格(网格)。display:grid。三、弹性布局Flexbox容器内自动调整元素大小和位置。display:flex;四、浮动布局float多列布局。overflow:hidden;floa......
  • 鸿蒙开发Hvigor任务简介
    编译构建工具DevEcoHvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排、工程模型管理、配置管理等关键能力,提供专用于构建和测试应用的流程和可配置设置。DevEcoStudio使用构建工具Hvigor来自动执行和管理构建流程,实现应用/服务构......
  • SV 语法 简介
    SystemVerilog(简称SV)是硬件描述语言(HDL)Verilog的扩展,旨在增强语言的表达能力,特别是在硬件设计与验证方面。它包括了许多新特性,既支持硬件描述,又提供了强大的功能来支持硬件验证。SystemVerilog的语法和Verilog类似,但在许多方面提供了更为丰富的特性,比如面向对象编程、随机化......
  • Consul简介
    本文分享自天翼云开发者社区《Consul简介》,作者:滑****秋Consul是一款开源的服务网格解决方案,由HashiCorp公司开发。它提供服务发现、健康检查、KEY/VALUE存储、多数据中心方案等功能,可以帮助企业构建和管理现代应用架构。Consul的主要功能如下:1.服务发现:Consul维护了......
  • .NET 简介
    文章目录一、组件二、免费且开源三、支持四、.NET生态系统.NET是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序。.NET可以运行使用多种语言编写的程序,其中C#是最常用的语言。.NET依赖于许多大规模应用在生产中使用的高性能运行时。......
  • 什么是SMARC?模块电脑(核心板)规范标准简介三
    1. 概念SMARC(Smart Mobility ARChitecture,智能移动架构)是一种通用的小型计算机模块定义,基于ARM和X86技术的模块化计算机低功耗嵌入式架构平台,旨在满足低功耗、低成本和高性能的应用需求。这些模块通常使用与平板电脑和智能手机中相似的ARM SOC,或其他低功耗SOC和CPU。  图......