鸿蒙笔记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(()=>{})

梅科尔工作室-崔启凡-鸿蒙笔记4相关推荐

  1. 梅科尔工作室-崔启凡-鸿蒙笔记3

    两个组件和渲染 list组件 父子组件(自定义组件) 双向数据绑定 if-else渲染 for循环渲染 案例 循环.列表 父子组件.点击事件 list组件 由list容器组件和listitem容器组件 ...

  2. 梅科尔工作室-崔子旭-鸿蒙笔记4

    Ability概述 Ability是一种包含用户界面的应用组件,主要用于和用户进行交互.Ability也是系统调度的单元,为应用提供窗口在其中绘制界面. 每一个Ability实例,都对应于一个最近任务 ...

  3. 梅科尔工作室-张启帆-鸿蒙笔记4

    本次的主要培训讲的是我们平常用手机时的一些跳转.数据请求.和弹窗等功能. 一.跳转功能 要实现Ability内页面的跳转和数据传递.首先需要导入router模块 跳转的方式呢,也有很多种,依次为你介绍 ...

  4. 梅科尔工作室-梁嘉莹-鸿蒙笔记1

    基本操作界面介绍 预览按钮 内置API文档查阅 项目设置 运行按钮(只有在真机模拟或远程模拟时才可以使用) 安装插件,在files下的settings-->Plugins里面,可以安装一个中文的 ...

  5. 梅科尔工作室-江凌宇-鸿蒙笔记1

    对于鸿蒙软件开发所用编译器的介绍 鸿蒙APP开发所采用的编译器为华为自研的DevEc编译器,简洁美观易上手是此编译器的巨大优势 主要目录配置文件作用(stage模型和FA模型下) 下面是在FA模型下的 ...

  6. 梅科尔工作室-江凌宇-鸿蒙笔记2

    HarmonyOS构建漂亮的页面 一.页面基本元素介绍 常用基础组件 组件介绍: 组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声明式开发范式为开发者提供了丰富多 ...

  7. 梅科尔工作室-梁嘉莹-鸿蒙笔记2

    1 组件介绍 组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声明式开发范式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富.漂亮的界面. ...

  8. 梅科尔工作室--梁嘉莹-鸿蒙笔记3

    目录 List组件 子组件 接口 语法 父子组件 组件导出 双向数据绑定 if-else渲染 使用语法 注意事项 for循环渲染 使用语法 注意事项 List组件 子组件: Listitem 接口: ...

  9. 梅科尔工作室-梁嘉莹-鸿蒙笔记4

    目录 官方API使用 路由跳转模块 实现Ability内页面的跳转和数据传递. 首先需要导入router模块 跳转方式 信息传递 注意事项 数据请求模块 申请网络上的接口,获取传输的数据.文档中心 首 ...

最新文章

  1. 快捷键设置_win10自带截图工具如何使用 、设置快捷键
  2. h5网页中使用打电话功能
  3. Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1问题总结及解决方案...
  4. Java高并发编程(十):Java并发工具类
  5. python 提取字符串中的数字
  6. 三个变量互换值_02-Python基础知识学习-------Python变量
  7. 虚拟列表控件---加载大数据行
  8. 无法上网dns转发_苹果笔记本上网很慢怎么回事?macbook无线上网慢的解决方法...
  9. 【POJ】1182 食物链
  10. c++生成光栅条纹程序_共享屋:一文让你认识光栅尺和编码器
  11. PhpYun人才系统 与 Discuz 社区 通过 Ucenter 做会员整合
  12. Filecoin网络目前总质押量约为4172万枚FIL
  13. 三款JSON类库Jackson,Gson与JSON-lib的性能对比
  14. H3C 常用信息查看命令
  15. Qt显示调用C++的dll
  16. 10本入门编程书籍推荐,带你入门到精通
  17. IT界的复仇者联盟解读
  18. iptables防火墙
  19. Translational Psychiatry:重度抑郁障碍的神经进行性特征:内在连接组分析
  20. 红黑树的历史和由来。

热门文章

  1. Java---反射机制
  2. http proxy 代理
  3. 断糖饮食和蜂蜜冲突吗?断糖减肥可以喝蜂蜜吗?
  4. html隐藏m3u8文件,播放具有HTML视频标签的m3u8文件
  5. php代码审计备忘录
  6. 医院wifi覆盖解决方案
  7. 会打字、能翻译,联想智能语音鼠标好小橙使用评测
  8. jmeter调整字体大小
  9. R039---超越容易实现的目标,成功地扩展RPA的重要性
  10. JVM内存与垃圾回收篇——堆