梅科尔工作室-崔启凡-鸿蒙笔记4

news/2025/1/9 8:05:16/

鸿蒙笔记4

  • 路由跳转
    • 作用
    • 用法
    • 跳转方式
      • 方式一
      • 方式二
      • 方式三
      • 方式四
    • 跳转页面数据的接受
  • 数据请求
  • 弹窗
  • 绑定事件
    • 点击事件
    • 触摸事件
    • 挂载卸载事件
    • 拖拽事件

路由跳转

作用

实现Ability内页面的跳转和数据传递。

用法

  • 首先在page目录原有的基础上建立跳转之后的页面
    如图又建立了一个second文件
    在这里插入图片描述
  • 让后在用到跳转的页面中导入router模块
    在这里插入图片描述
  • 其次在 resources->confij.json 的pages部分添加你要跳转页面的路径,不然的话不能跳转,会报错(很重要小编首次就给忘了,头疼了好半天…)
    在这里插入图片描述
    在这里插入图片描述
  • 代码示例(部分)
Button('登录').width('90%').height(40).fontSize(16).fontWeight(FontWeight.Medium).backgroundColor('#007DFF').onClick(()=>{router.push({url:"pages/second",});})

跳转方式

方式一

  • router.push(),跳转到指定页面。
  • 注意:每调用一次router.push()方法,均会新建一个页面。默认情况下,页面栈数量会加1,页面栈支持的最大页面数量为32。
  • 当页面栈数量较大或者超过32时,可以通过调用router.clear()方法清除页面栈中的所有历史页面,仅保留当前页面作为栈顶页面。
  • 示例
router.push({url: 'pages/Second',params: {src: 'Index页面传来的数据',}
})

方式二

  • API9及以上,router.push()方法新增了mode参数,可以将mode参数配置为router.RouterMode.Single单实例模式和router.RouterMode.Standard标准模式。
  • 在单实例模式下:如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的同url页面会被移动到栈顶,移动后的页面为新建页,原来的页面仍然存在栈中,页面栈数量不变;如果目标页面的url在页面栈中不存在同url页面,按标准模式跳转,页面栈数量会加1。
  • 示例
router.push({url: 'pages/Second',params: {src: 'Index页面传来的数据',}
}, router.RouterMode.Single)

方式三

  • 通过调用router.replace()方法,跳转到Ability内的指定页面。即使用新的页面替换当前页面,并销毁被替换的当前页面,页面栈数量不变。
  • 示例
router.replace({url: 'pages/Second',params: {src: 'Index页面传来的数据',}
})

方式四

  • API9及以上,router.replace()方法新增了mode参数,可以将mode参数配置为router.RouterMode.Single单实例模式和router.RouterMode.Standard标准模式。
  • 在单实例模式下:如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的同url页面会被移动到栈顶,替换当前页面,并销毁被替换的当前页面,移动后的页面为新建页,页面栈数量会减1;如果目标页面的url在页面栈中不存在同url页面,按标准模式跳转,页面栈数量不变。
  • 示例
router.replace({url: 'pages/Second',params: {src: 'Index页面传来的数据',}
}, router.RouterMode.Single)

跳转页面数据的接受

  • 通过调用router.getParams()方法获取Index页面传递过来的自定义参数。
  • 示例
import router from '@ohos.router';@Entry
@Component
struct Second {@State src: string = router.getParams()?.['src'];// 页面刷新展示...
}

数据请求

申请网络上的接口,获取传输的数据

  • 首先需要导入http 模块
import http from '@ohos.net.http';
  • 配置权限
    在config.json的module模块里配置,示例如下
    在这里插入图片描述
    具体的我就不多介绍了给大家看一个官方示例:
import http from '@ohos.net.http';// 每一个httpRequest对应一个http请求任务,不可复用
let httpRequest = http.createHttp();
// 用于订阅http响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
// 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
httpRequest.on('headersReceive', (header) => {console.info('header: ' + JSON.stringify(header));
});
httpRequest.request(// 填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定"EXAMPLE_URL",{method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET// 开发者根据自身业务需要添加header字段header: {'Content-Type': 'application/json'},// 当使用POST请求时此字段用于传递内容extraData: {"data": "data to send",},connectTimeout: 60000, // 可选,默认为60sreadTimeout: 60000, // 可选,默认为60s}, (err, data) => {if (!err) {// data.result为http响应内容,可根据业务需要进行解析console.info('Result:' + data.result);console.info('code:' + data.responseCode);// data.header为http响应头,可根据业务需要进行解析console.info('header:' + JSON.stringify(data.header));console.info('cookies:' + data.cookies); // 8+} else {console.info('error:' + JSON.stringify(err));// 当该请求使用完毕时,调用destroy方法主动销毁。httpRequest.destroy();}}
);

弹窗

  • 首先需要导入prompt模块
import prompt from '@ohos.prompt';
  • 主要使用的是prompt.showToast()方法,作用是可以在屏幕上弹出提示信息。message是弹出的消息,而duration是弹出的时间,单位是毫秒。1000是1秒,则2000是2秒。
 prompt.showToast({message: "数据获取成功",duration: 3000,});

绑定事件

用on加事件名称,不同的组件有不同的事件类型。通用事件如下:

点击事件

.onClick(()=>{})

触摸事件

.onTouch(()=>{})

挂载卸载事件

.onAppear(()=>{})
.onDisAppear(()=>{})

拖拽事件

 .onDragStart(()=>{})

http://www.ppmy.cn/news/591712.html

相关文章

梅科尔工作室E1-张冉-鸿蒙笔记4

ohos.router (页面路由) 导入模块 import router fromohos.router router.push push(options: RouterOptions): void 跳转到应用内的指定页面。 系统能力: SystemCapability.ArkUI.ArkUI.Full 参数: 参数名类型必填说明optionsRouterOptions是跳转页面描…

6月24日每日两题

第一题:笨小猴 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现…

Rust语言从入门到入坑——(9)Rust 生命周期

文章目录 0、引入1、生命周期注释2、结构体中使用字符串切片引用3、静态生命周期4、泛型、特性与生命周期协同作战5、总结 0、引入 Rust 生命周期机制是与所有权机制同等重要的资源管理机制,之所以引入这个概念主要是应对复杂类型系统中资源管理的问题。 引用是对…

Java英语单词(5000个)

Java基础常见英语词汇 OO: 面向对象 OOP: object-oriented programming,面向对象编程 JDK:Java development kit, java开发工具包 JVM:java virtual machine ,java虚拟机 Compile:编绎 Run:运行 variable:变量 …

mybatis批量插入5000+条数据

近日&#xff0c;项目中有一个耗时较长的Job存在CPU占用过高的问题&#xff0c;经排查发现&#xff0c;主要时间消耗在往MyBatis中批量插入数据。mapper configuration是用foreach循环做的&#xff0c;差不多是这样。 <insert id"batchInsert" parameterType&quo…

5000词学英语——DAY7

I‘ll meet you at half past five. 我们五点办见。 My office is just above yours. 我的办公室在你楼上。 The temperature is below zero. 现在气温在零度以下。 I’m not there yet, but I’m on my way. 我还没到&#xff0c;但我在路上。 I started my current job i…

程序员毕业实习报告,5000字

我所在的实习岗位是一个所属Java部的程序开发岗位,主要工作是配合团队开发编写后台语言。由于是初次出来实习,所以我会在开发的初始阶段找一些相关的网站和对应的资料进行参考性学习,通过这些资料或许可以提升自身的技术水平,然后也可以帮助到现在做的项目,以及实现相关的…

5000词学英语——DAY3

The essence of the matter wasn’t addressed in the brainstorming session. 问题的本质在头脑风暴环节并未得到处理。 She goes to church for community and fellowship. 她去教堂参加集会和团契。 The question is beyond the scope of the present article. 这个问题已…