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

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

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

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

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

// 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);})}}
}
// 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 添加路由表配置

// src/main/module.json5{"module" : {"routerMap": "$profile:route_map"}}

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

// 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"}}]
}
// src/main/resources/base/profile/main_pages.json
{"src": ["pages/Index"]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/903289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE3:封装一个评论回复组件

之前用React封装的评论回复组件,里面有三个主要部分:CommentComponent作为主组件,CommentItem处理单个评论项,CommentInput负责输入框。现在需要将这些转换为Vue3的组件。 Vue3和React在状态管理上有所不同,Vue3使用r…

制作一款打飞机游戏27:精灵编辑器UI

继续开发我们的编辑器——Sprit Edit。我们已经创建了这个小编辑器,它可以显示很多精灵(sprites),并且我们可以遍历所有精灵。这真的很棒,我们可以创建新的精灵,这也不错。但是,唉,我…

k8s(9) — zookeeper集群部署(亲和性、污点与容忍测试)

一、部署思路 1、前期设想 zookeeper集群至少需要运行3个pod集群才能够正常运行,考虑到节点会有故障的风险这个3个pod最好分别运行在3个不同的节点上(为了实现这一需要用到亲和性和反亲和性概念),在部署的时候对zookeeper运行的pod打标签加…

WXT+Vue3+sass+antd+vite搭建项目开发chrome插件

WXTVue3sassantdvite搭建项目开发chrome插件 前言一、初始化项目二、项目配置调整三、options页面配置四、集成antd五、集成sass六、环境配置七、代码注入 vue3:https://cn.vuejs.org/ axios:https://www.axios-http.cn/docs/api_intro antd:…

JSAPI2.4——正则表达式

一、语法 const str 一二三四五六七八九十 //判断内容 const reg /二/ //判断条件 console.log(reg.test(str)); //检查 二、test与exec方法的区别 test方法:用于判断是否符合规则的字符串,返回值是布尔值 exec方法&…

燃气用户检修工考试精选题

燃气用户检修工考试精选题: 我国国家标准规定民用天然气中硫化氢含量最高允许浓度是( )。 A. 20mg/m B. 15mg/m C. 5mg/m D. 50mg/m 答案:A 城市燃气应具有可以察觉的臭味,当无毒燃气泄漏到空气中,达到爆炸…

【前端】1h 搞定 TypeScript 教程_只说重点

不定期更新,建议关注收藏点赞。 目录 简介使用基本类型、类型推断和类型注解接口、类型别名、联合类型类与继承泛型GenericsReact 与 TS 进阶高级类型装饰器Decorators模块系统TypeScript 编译选项 简介 TypeScript(简称 TS)是一种由微软开发…

MyBatis 参数绑定

一、MyBatis 参数绑定机制 1.1 核心概念 当 Mapper 接口方法接收多个参数时,MyBatis 提供三种参数绑定方式: 默认参数名:arg0、arg1(Java 8)或 param1、param2Param 注解:显式指定参数名称POJO/DTO 对象…

【解决方案】Linux解决CUDA安装过程中GCC版本不兼容

Linux解决CUDA安装过程中GCC版本不兼容 目录 问题描述 解决方法 安装后配置 问题描述 Linux环境下安装 CUDA 时,运行sudo sh cuda_10.2.89_440.33.01_linux.run命令出现 “Failed to verify gcc version.” 的报错,提示 GCC 版本不兼容,查…

人工智能数学基础(一):人工智能与数学

在人工智能领域,数学是不可或缺的基石。无论是算法的设计、模型的训练还是结果的评估,都离不开数学的支持。接下来,我将带大家深入了解人工智能数学基础,包括微积分、线性代数、概率论、数理统计和最优化理论,并通过 P…

Shell脚本-嵌套循环应用案例

在Shell脚本编程中,嵌套循环是一种强大的工具,可以用于处理复杂的任务和数据结构。通过在一个循环内部再嵌套另一个循环,我们可以实现对多维数组、矩阵操作、文件处理等多种高级功能。本文将通过几个实际的应用案例来展示如何使用嵌套循环解决…

勘破养生伪常识,开启科学养生新篇

​在养生潮流风起云涌的当下,各种养生观点和方法层出不穷。但其中有不少是缺乏科学依据的伪常识,若不加分辨地盲目跟从,不仅难以实现养生目的,还可能损害健康。因此,勘破这些养生伪常识,是迈向科学养生的关…

Nacos-3.0.0适配PostgreSQL数据库

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

机器学习第三篇 模型评估(交叉验证)

Sklearn:可以做数据预处理、分类、回归、聚类,不能做神经网络。原始的工具包文档:scikit-learn: machine learning in Python — scikit-learn 1.6.1 documentation数据集:使用的是MNIST手写数字识别技术,大小为70000,数据类型为7…

如何在 IntelliJ IDEA 中编写 Speak 程序

在当今数字化时代,语音交互技术越来越受到开发者的关注。如果你想在 IntelliJ IDEA(一个强大的集成开发环境)中编写一个语音交互(Speak)程序,那么本文将为你提供详细的步骤和指南。 一、环境准备 在开始编…

AI大模型学习十四、白嫖腾讯Cloud Studio AI环境 通过Ollama+Dify+DeepSeek构建生成式 AI 应用-接入DeepSeek大模型

一、说明 需要阅读 AI大模型学习十三、白嫖腾讯Cloud Studio AI环境 通过OllamaDifyDeepSeek构建生成式 AI 应用-安装-CSDN博客https://blog.csdn.net/jiangkp/article/details/147580344?spm1011.2415.3001.5331 我们今天干点啥呢,跟着官网走 模型类型 在 Dify…

《Astro 3.0岛屿架构让内容网站“脱胎换骨”》

内容优先的网站越来越成为主流。无论是新闻资讯、知识博客,还是电商产品展示,用户都希望能快速获取所需内容,这对网站的性能和体验提出了极高要求。而Astro 3.0的岛屿架构,就像是为内容优先网站量身定制的一把神奇钥匙&#xff0c…

在 UniApp 中实现 App 与 H5 页面的跳转及通信

在移动应用开发中,内嵌 H5 页面或与外部网页交互是常见需求。UniApp 作为跨平台框架,提供了灵活的方式实现 App 与 H5 的跳转和双向通信。本文将详细讲解实现方法,并提供可直接复用的代码示例。 文章目录 一、 App 内嵌 H5 页面(使…

springboot 实现敏感信息脱敏

记录于2025年4月28号晚上--梧州少帅 1. 定义枚举类: public enum DesensitizeType {NAME, EMAIL } 2. 创建自定义注解: 用于标记需要脱敏的字段及其类型。 Retention(RetentionPolicy.RUNTIME) JacksonAnnotationsInside JsonSerialize(using Desen…

SNMP协议之详解(Detailed Explanation of SNMP Protocol)

SNMP协议之详解 一、前言 SNMP,被形象地喻为网络世界大的工具箱,使他们能的“智慧守护者”,它为网络管理员装备了一套功能强够实现对网络设备状态的实时监控、性能数据的全面收集、远程配置的灵活管理以及故障事件的即时响应。借助SNMP&…