入门版 鸿蒙 组件导航 (Navigation)

入门版 鸿蒙 组件导航 (Navigation)

注意:使用 DevEco Studio 运行本案例,要使用模拟器,千万不要用预览器,预览器看看 Navigation 布局还是可以的

  1. 效果:点击首页(Index)跳转到页面(MainPage)
  2. 先写 Index 和 MainPage 这两个页面
  3. 路由相关配置

Index 和 MainPage 两个页面,点击这个两个页面可以互相跳转

ts 复制代码
// src/main/ets/pages/Index.ets
@Entry
@Component
struct Index {
  // 创建导航路径栈实例,用于管理页面跳转历史
  pageStack: NavPathStack = new NavPathStack()

  build() {
    // 使用Navigation组件作为导航容器,传入pageStack管理路由
    Navigation(this.pageStack) {
      Column() {
      }
      .width('100%')
      .height('100%')
      .backgroundColor(Color.Blue)
      .onClick(() => {
        // 击时压入名为"MainPage"的新页面到路径栈
        this.pageStack.pushPathByName("MainPage", null);
      })
    }
  }
}
ts 复制代码
// src/main/ets/pages/MainPage.ets
// 跳转页面入口函数
@Builder
export function MainPageBuilder() {
  MainPage()
}

@Component
struct MainPage {
  pageStack: NavPathStack = new NavPathStack()

  build() {
    // 定义导航目标页面的容器
    NavDestination() {
    }
    .width('100%')
    .height('100%')
    .backgroundColor(Color.Brown)
    .title('MainPage')
    .onClick(() => {
      // 清空导航路径栈(用于返回首页)
      this.pageStack.clear()
    })
    // 页面就绪回调onReady
    .onReady((context: NavDestinationContext) => {
      // 从上下文中获取路径栈实例(需确保与父组件共享同一个实例)
      this.pageStack = context.pathStack
    })
  }
}

路由相关的配置

在跳转目标模块的配置文件 module.json5 添加路由表配置

ts 复制代码
// src/main/module.json5
  {
    "module" : {
      "routerMap": "$profile:route_map"
    }
  }

添加完路由配置文件地址后,需要在工程 resources/base/profile 中创建 route_map.json 文件

ts 复制代码
// src/main/resources/base/profile/router_map.json
{
  "routerMap": [
    {
      "name": "MainPage",
      "pageSourceFile": "src/main/ets/pages/MainPage.ets",
      "buildFunction": "MainPageBuilder",
      "data": {
        "description": "this is MainPage"
      }
    }
  ]
}
ts 复制代码
// src/main/resources/base/profile/main_pages.json
{
  "src": [
    "pages/Index"
  ]
}
相关推荐
亚历克斯神10 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
钛态10 小时前
Flutter 三方库 smartstruct 鸿蒙化字段映射适配指南:介入静态预编译引擎扫除视图及数据模型双向强转类型错乱隐患,筑稳如磐石的企业级模型治理防线-适配鸿蒙 HarmonyOS ohos
flutter·华为·harmonyos
键盘鼓手苏苏10 小时前
Flutter 组件 csv2json 适配鸿蒙 HarmonyOS 实战:高性能异构数据转换,构建 CSV 流式解析与全栈式数据映射架构
flutter·harmonyos·鸿蒙·openharmony
雷帝木木10 小时前
Flutter 三方库 hrk_logging 的鸿蒙化适配指南 - 实现标准化分层日志记录、支持多目的地输出与日志分级过滤
flutter·harmonyos·鸿蒙·openharmony·hrk_logging
左手厨刀右手茼蒿10 小时前
Flutter 三方库 dio_compatibility_layer 的鸿蒙化适配指南 - 实现 Dio 跨主版本的平滑迁移、支持遗留拦截器兼容与网络请求架构稳定升级
flutter·harmonyos·鸿蒙·openharmony·dio_compatibility_layer
雷帝木木10 小时前
Flutter 三方库 hashids2 基于鸿蒙安全内核的深度隐匿映射适配:数字指纹泄露防御层、生成短小精悍唯一不可逆加盐哈希,护航全链路请求 URL 隐私-适配鸿蒙 HarmonyOS ohos
安全·flutter·harmonyos
HwJack2012 小时前
HarmonyOS响应式布局与窗口监听:让界面像呼吸般灵动的艺术
ubuntu·华为·harmonyos
王码码203513 小时前
Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座
flutter·harmonyos·鸿蒙·openharmony·inappwebview_cookie_manager
左手厨刀右手茼蒿13 小时前
Flutter 组件 ews 的适配 鸿蒙Harmony 实战 - 驾驭企业级 Exchange Web Services 协议、实现鸿蒙端政企办公同步与高安通讯隔离方案
flutter·harmonyos·鸿蒙·openharmony
键盘鼓手苏苏13 小时前
Flutter 组件 spry 适配鸿蒙 HarmonyOS 实战:轻量化 Web 框架,构建高性能端侧微服务与 Middleware 治理架构
flutter·harmonyos·鸿蒙·openharmony