【HarmonyOS NEXT星河版开发实战】页面跳转

news2024/11/14 1:29:10

个人主页→VON

收录专栏→鸿蒙综合案例开发​​​​​

代码及其图片资源会发布于gitee上面(已发布)

gitee地址icon-default.png?t=N7T8https://gitee.com/wang-xin-jie234

目录

前言

界面功能介绍

界面构建过程

知识点概述

页面跳转

页面传参

全套源代码

Index页面

SecondPage页面 


前言

单一页面所实现的具体功能十分的局限,所以页面之间的跳转就显得及其重要,本案例就以简单的页面之间的跳转为例来进行这一基础知识的讲解。

界面功能介绍

 这里就以两个页面为例,第一页有一个next按钮,通过单击next按钮会跳转到第二页。第二页中的“首页向您问好”是首页的文字,通过传参传到了第二页。通过单击第二页中的back按钮又会跳转到首页。

界面构建过程

就是一个简单的页面构建,只有文字和一个按钮组成,可以根据实际情况来进行页面的精彩构建。 

 

第二个页面也十分的简洁,相较于第一个页面就多了个传入的参数。 

知识点概述

页面跳转

在鸿蒙操作系统中,页面跳转是通过Router模块来实现的。鸿蒙操作系统(HarmonyOS)作为华为推出的全新分布式操作系统,旨在通过统一的语言和框架,实现应用在不同设备间的无缝连接与协同工作。页面跳转作为应用开发中的常见需求,对于提升用户体验和应用流畅度具有重要意义。

鸿蒙系统中的页面跳转主要依赖于Router模块,该模块提供了丰富的API支持各种页面跳转场景。Router模块提供两种主要跳转模式:pushUrl()和replaceUrl()。这两种模式主要决定了目标页面是否会替换当前页面。pushUrl()模式允许目标页面压入页面栈,保留当前页状态,可通过返回键或调用router.back()方法回到当前页。而replaceUrl()模式则会替换并销毁当前页面,释放其资源,用户无法返回到被替换的页面。

页面传参

在鸿蒙操作系统中,页面传参主要通过路由(Route)和意图(Intent)两种方式实现。鸿蒙操作系统(HarmonyOS)是华为推出的一款面向全场景的分布式操作系统,它允许开发者在不同设备间实现无缝连接和协同工作。页面传参是应用开发中的常见需求,对于提升用户体验和应用流畅度具有重要意义。

首先,介绍路由方式传参。路由方式主要适用于页面间的跳转和参数传递。具体步骤如下:首先需要引入路由模块,然后使用router.push()方法进行页面跳转和参数传递。这种方法允许将参数以对象的形式传递给目标页面。例如,可以这样写:router.push({url: "pages/[页面命名]", params: {value: 'test'}})。目标页面接收参数也非常简单,只需使用router.getParams()方法获取传递过来的参数对象,并可以通过相应的键值访问具体参数。

其次,介绍意图方式传参。意图方式传参在鸿蒙系统中也是一种重要的页面传参手段。鸿蒙提供了startAbilitystartAbilityForResult两种方法来启动一个页面,并传递参数。具体步骤如下:第一步是创建一个IntentParams对象,并通过setParam方法设置需要传递的参数。第二步是调用startAbilitystartAbilityForResult方法,将IntentParams对象作为参数传递。在目标页面中,可以通过重载的onStart方法获取传递过来的意图对象,并通过getStringParam等方法获取具体参数。

全套源代码

Index页面

import router from '@ohos.router'

@Entry
@Component
struct Index {
  build() {
    Column(){
      Text('First  Page')
        .height('50%')
        .fontSize(30)
        .fontWeight(700)
      Button('Next')
        .width(200)
        .fontSize(20)
        .fontWeight(700)
        .onClick(()=>{
          router.pushUrl({
            url:'pages/SecondPage',
            params:{
              src:'首页向您问好'
            }
          })
        })
    }
    .width('100%')
    .height('100%')
  }
}

SecondPage页面 

import router from '@ohos.router'

@Entry
@Component
struct SecondPage {
  @State src:string=(router.getParams() as Record<string,string>)['src']
  build() {
    Column(){
      Text('Second  Page')
        .height('50%')
        .fontSize(30)
        .fontWeight(700)
      Text(this.src)
        .fontSize(20)
        .fontWeight(500)
        .margin({bottom:20})
      Button('Back')
        .width(200)
        .fontSize(20)
        .fontWeight(700)
        .onClick(()=>{
          router.pushUrl({
            url:'pages/Index'
          })
        })
    }
    .width('100%')
    .height('100%')
  }
}

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

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

相关文章

API 的多版本管理,如何在 Apifox 中操作?

开放 API 是技术团队向外部提供服务和数据的关键手段。随着业务的发展和技术的更新&#xff0c;API 也需要不断进行版本迭代。这种迭代通常是为了满足市场需求&#xff0c;优化现有功能&#xff0c;增加新特性&#xff0c;或者修复漏洞。 在多个版本共存的情况下&#xff0c;团…

pikachu靶场----ssrf实现

目录 ssrf简介 SSRF&#xff08;curl&#xff09; 1.后端代码分析 2.http协议连接本地文件 3.file协议读取C盘中的文件。 4.dict协议扫描内网其他主机的端口开放情况 5.使用burp扫描内网其他主机的端口开放情况 ssrf简介 SSRF(Server-Side Request Forgery:服务器端请求…

AI引领边缘计算变革,打造嵌入式产业新未来

在科技的洪流中&#xff0c;AI&#xff08;人工智能&#xff09;如同一位强大的领航者&#xff0c;正引领着边缘计算发生深刻的变革&#xff0c;为嵌入式产业开辟出一片充满无限可能的新未来。 曾经&#xff0c;我们难以想象智能设备能够在无需依赖云端强大计算能力的情况下&am…

.NET_WebForm_layui控件使用及与webform联合使用

使用layui控件填充布局 操作流程&#xff1a; 创建项目。引入css以及js样式。使用栅格样式进行布局。官网查找控件元素&#xff08;此处以图标和按钮为例&#xff09;。将对应的元素从官网复制下来。在布局中填充。很简单的操作&#xff0c;其他控件也同理&#xff0c;不再赘…

GlusterFS-分布式文件系统:概念、案例

目录 GlusterFS 简介 概念 文件系统 通信方式 Cluster特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准协议 GlusterFS术语 &#xff08;1&#xff09;Brick &#xff08;2&#xff09;Volume &#xff08;3&#xff09;FUSE &#xff08;4…

因http连接问题产生的生产事故

早上7点接到报警&#xff08;有机器oom报警&#xff0c;且负载很高&#xff0c;运维看阿里云监控上的tcp链接&#xff09;&#xff0c;研发和运维小伙伴一起分析&#xff0c;因为怕影响线上客户&#xff0c;直接选择了服务回退&#xff08;昨天&#xff09;。 服务回退后&…

2024/08(二) 近期关于AI的阅读和理解[笔记]

## Multi Agent/Flow 最近团队在实验 flowise 的 Agentflows 设计&#xff0c;顺带看了现在市面多加解决方案&#xff0c;这两天偶尔看到蚂蚁CodeFuse团队开发的Mulit Agent框架开发思想&#xff0c; 所以将他们一起总结归纳下。 Agent Base&#xff1a;构建了四种基本的Agent…

【计算机三级-数据库技术】操作题大题(第1套)

46题 1 设要为某工厂设计一个数据库&#xff0c;需要记录如下信息&#xff08;有下划线的信息可作为唯一标识&#xff09;&#xff1a; •产品有产品名、规格&#xff1b; •每种产品拥有多道加工工序&#xff0c;每道加工工序只适用于一种产品&#xff1b; •每道工序需要记…

【CAN总线测试】——CAN交互层测试

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者&#xff0c;时光不负有心人。 目录 1.应用报文发送检查 2.周期型报文测试 3.信号使用位与未使用位默认值检查 4.突增负载测试 5.CheckSum测试 6.RollongCounter测试 1.应用报文发送检查 用例编…

四种常见的云攻击及其应对措施

随着云应用的快速发展&#xff0c;也吸引了众多潜在恶意人士的觊觎。企业用户往往习惯于使用联盟或VPN进行直接连接或通过合作伙伴进行连接。 现在&#xff0c;另一个能够攻击者提供访问级别的攻击媒介竟然是云服务供应商(CSP)&#xff0c;这在以往是前所未有的。违规CSP有可能…

秒懂C++之set、map的封装

目录 红黑树的泛型编程 改变比较方式&#xff1a;仿函数 迭代器模拟实现 运算符重载 begin/end !/运算符重载 测试 const Find [ ] 运算符重载 全部代码 RBTree.h Mymap.h Myset.h test.cpp 红黑树的泛型编程 既然我们要实现set,map的封装那肯定要用到我们前面所学…

LLaMa系列模型详解(原理介绍、代码解读):LLaMa_llama模型

LLaMA详解 LLaMA&#xff08;Large Language Model Meta AI&#xff09;是由Meta&#xff08;前身为Facebook&#xff09;开发的一种大规模语言模型&#xff0c;旨在提高自然语言处理&#xff08;NLP&#xff09;任务的性能。LLaMA基于变换器&#xff08;Transformer&#xff…

只需5分钟!手把手教你安装StableDiffusion,开启AI图像生成新纪元

在这个数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术已经深入到我们生活的每一个角落。 特别是在图像生成领域&#xff0c;AI技术的应用不仅极大地提高了创作效率&#xff0c;更开启了艺术创作的新纪元。 今天&#xff0c;我们将聚焦于StableDiffusion这一先…

【数据结构】关于二叉搜索树,你知道如何实现增删模拟吗???(超详解)

前言&#xff1a; &#x1f31f;&#x1f31f;Hello家人们&#xff0c;这期讲解二叉搜索树内部实现基础功能模拟&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;http://t.csdnimg.cn/rfYFW &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a…

从需求到交付:动态敏捷如何确保每一行代码都物超所值

动态敏捷方法论在软件开发中的应用 在当今快速变化的商业环境中&#xff0c;软件开发团队面临着不断变化的需求和市场挑战。传统的瀑布式开发模型已无法满足现代软件开发的灵活性和响应速度需求。动态敏捷&#xff08;Dynamic Agility&#xff09;作为一种新兴的开发方法论&…

introsort的快排跑排序OJ代码

introsort的快排跑排序OJ代码 introsort是introspective sort采⽤了缩写&#xff0c;他的名字其实表达了他的实现思路&#xff0c;他的思路就是进⾏⾃ 我侦测和反省&#xff0c;快排递归深度太深&#xff08;sgi stl中使⽤的是深度为2倍排序元素数量的对数值&#xff09;那就说…

《黑神话:悟空》在未来市场的应用与代码案例分析

作者主页: 知孤云出岫 目录 作者主页:**《黑神话&#xff1a;悟空》在未来市场的应用与代码案例分析****一、引言****二、市场应用场景分析****1. 数据驱动的市场决策****2. 游戏内经济系统的智能优化****3. 个性化推荐系统与用户体验提升** **三、市场推广与用户扩展策略***…

十一:C语言-操作符详解

1.了解二进制 其实二进制&#xff1b;八进制&#xff1b;十进制和十六进制都是数值的不同表示形式而已 二进制&#xff1a;基数为2&#xff0c;由0和1两个数字组成&#xff0c;逢2进1。八进制&#xff1a;基数为8&#xff0c;由0~7八个数字组成&#xff0c;逢8进1。十进制&am…

猫头虎 分享:Python库 SymPy 的简介、安装、用法详解入门教程 ‍

猫头虎 分享&#xff1a;Python库 SymPy 的简介、安装、用法详解入门教程 &#x1f431;‍&#x1f464; 今天猫头虎带您 深入了解 Python库 SymPy&#xff0c;这是一个强大且广泛应用于符号数学计算的库。最近有粉丝问猫哥&#xff1a;如何利用 SymPy 进行数学公式的符号化处…

【Maps JavaScript API】基础地图的创建与实现详解

文章目录 一、概述1. Google Maps JavaScript API 简介2. Simple Map 示例概述 二、创建一个基础地图1. 引入 Google Maps JavaScript API2. 初始化地图(1) 定义地图的 HTML 容器(2) 编写 JavaScript 代码初始化地图 3. 将地图集成到网页中 三、代码分析与关键点1. 地图中心点的…