鸿蒙系统路由表

准备工作:

        1. 创建鸿蒙项目

        2. 创建分层架构

一、配置features.har/hsp模块

1. 给每个模块创建系统路由表

在resources/base/profile/route_map.json目录下创建 路由配置文件,且填写以下代码

{
  "routerMap": [
    {
      "name": "CartHar/MainPage",    // 路径名
      "pageSourceFile": "src/main/ets/components/MainPage.ets", // 实际的文件位置  
      "buildFunction": "MainPageBuilder",    // 导出的内容
      "data": {
        "description" : "this is PageOne"
      }
    }
  ]
}

2. 让创建的route_map.json生效

修改模块的module.json5文件,在该文件的module内添加"routerMap": "$profile:route_map",

3. 按照系统路由表需要的组件格式修改组件

// 该文件的位置要和第一步pageSourceFile的路径一致
// 导出的名字要和第一步buildFunction的值保持一致
@Builder
export function MainPageBuilder() {  
  MainPage()
}


@Component
struct MainPage { 

  build() {
    NavDestination() { 
      Text('内容').fontSize(30)
    }
    .title('CartHar/MainPage')
    .hideTitleBar(false)
  }
}

二、配置entry(hap)绑定依赖模块

在产品模块 对应的设备下的 oh-package.json5文件中绑定依赖

"dependencies": {
    "引入模块下oh-package.json5对应的name值保持一致": "file:路径"
}

三、跳转

entry.hap -> har/hsp

@Entry
@Component
struct Index {
  @Provide pageStack: NavPathStack = new NavPathStack()
  build() {
    Navigation(this.pageStack){
      Button('跳转har/hsp').onClick(() => this.pageStack.pushPathByName('路径', null))
    }
  }
}

har -> har/hsp

@Builder
export function MainPageBuilder() { 
  MainPage()
}

@Component
struct MainPage {
  @Consume('pageStack') pageStack: NavPathStack
  build() {
    NavDestination() {
      Text('内容').fontSize(30)
      Button('Har -> har/hap').onClick(() => this.pageStack.pushPathByName('路径', null))
    }
    .title('HomeHar/MainPage')
    .hideTitleBar(false)
  }
}

### 关于鸿蒙系统 Navigation 路由表配置鸿蒙系统开发环境中,为了实现高效的路由管理以及模块间的解耦合,采用基于Navigation的路由设计方案成为一种趋势。对于已经使用`router`构建了路由框架的应用程序来说,向新的Navigation机制迁移意味着要对现有的路由逻辑做出调整[^1]。 #### 创建 `router_map.json` 当涉及到具体的配置工作时,在项目结构中的`\entry\src\main\resources\base\profile\`路径下创建名为`router_map.json`的新文件是一个重要的步骤。此JSON文件用于定义应用程序内部各个页面之间的映射关系及其访问规则,从而支持更灵活且易于维护的导航模式[^2]。 ```json { "routes": [ { "path":"/home", "component":"HomeAbility" }, { "path":"/detail/:id", "component":"DetailAbility" } ] } ``` 上述代码片段展示了如何在一个简单的`router_map.json`文件中声明两个基本路由条目:一个是通往主页的能力(`HomeAbility`);另一个则是带有参数传递功能的具体详情页能力(`DetailAbility`)。 #### 动态注册路由优化性能 除了静态配置外,还可以利用动态注册的方式来增强应用的表现力并改善用户体验。特别是在面对复杂界面组合的情况下——即需要在同一屏幕内加载多个UI组件时可能会遇到启动速度下降的问题——这种方法能够有效缓解此类状况的发生[^3]。 通过以上介绍可以看出,在鸿蒙平台上实施有效的Navigation策略不仅有助于提高软件架构的质量,同时也为开发者提供了更多样化的工具来满足不同业务需求下的挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值