IMAU鸿蒙北向开发-2023年9月5日学习日志

1. 5种调试方式

1.1 Previewer

在侧边 Previewer 选项卡内可以预览Entry。
如果要单独预览组件,可以在给组件加@Preview 装饰器

在这里插入图片描述

1.2 Local Emulator(本地模拟)

在这里插入图片描述

1.3 Remote Emulator(远程模拟)

在这里插入图片描述
使用时需要登录华为开发者账号。

1.4 Remote Device (远程真机)

在这里插入图片描述

在这里插入图片描述
上图分别对应Local Emulator、Remote Emulator、Remote Device

1.5 本地真机

2. 属性方法和事件方法

在这里插入图片描述
在这里插入图片描述

@Entry // 将这个组件作为入口
@Component // @Component 加上 struct 关键字来定义一个组件
struct Index {@State message: string = 'Hello World'build() {Column({space: 5}) {Text('Hello Harmony!').fontColor(Color.Red) // 设置属性方法.fontSize(30)Button().fontColor(Color.Black).onClick(() => { // 设置事件方法console.info("-----> button is clicked")})Component1()}}
}

3. 源码简要分析

在这里插入图片描述

4. UI动态更新

@State 装饰器是 HaromonyOS 中用来标识状态变量的装饰器。使用 @State 装饰器可以将变量标记为状态变量,并且在变量值发生改变时可以自动触发组件的重新渲染,从而保持界面与状态的一致性。

具体来说,使用 @State 装饰器会将变量标记为响应式变量,在变量值发生改变时,会通过调用 setState 方法来触发组件的重新渲染。在编写鸿蒙应用时,可以利用 @State 装饰器来标记需要动态变化的状态变量,这样可以更方便地实现组件的动态更新。

使用 @State 装饰器时需要注意以下几点:

  1. @State 装饰器只能用于类组件中的字段上。

  2. 被 @State 装饰器标记的变量不应该被直接修改,而是应该通过调用 setState 方法来进行更新。

  3. 在组件的构造函数中,需要通过调用 bind 方法将 this 绑定到 setState 中,否则在调用 setState 时会出现错误。

5. @Style 装饰器

// 公共属性和专有属性
@Styles function myText1() {.backgroundColor(Color.Gray).width(400).height(100).padding({left: 50,})
}// 组件的专有属性,扩展组件的属性
@Extend(Text) function myText2(size: number) {.fontSize(size).fontSize(Color.Blue)
}

使用

@Entry
@Component
struct Page4 {build(){Column() {Text("Hello Harmony").fontSize(30).fontColor("#0000ff").myText1()Text("Hello Harmony2").fontSize(30).fontColor("#0000ff").myText1()Text("Hello Harmony3").fontSize(30).fontColor("#0000ff").myText1()}}
}

6. @Entry的生命周期

  • 页面加载的时候,会依次调用:aboutToAppear() --> onPageShow()
  • 点击手机返回,会依次调用:onBackPress() —> aboutToDisappear()
  • 再次打开桌面应用,会依次调用:aboutToAppear() —> onPageShow()
  • 点击手机回到桌面按钮,会依次调用:onPageHide(), 再次打开的时候只调用 onPageShow()
// 组件的生命周期方法
@Entry
@Component
struct Page5 {@State message: string = 'Hello World'private tag: string = "-------->"aboutToAppear() {// 在build之前调用console.info(`${this.tag}, aboutToAppear()方法被调用了`)}build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Blank()}.width('100%')}.height('100%')}aboutToDisappear() {console.info(`${this.tag}, aboutToDisappear()方法被调用了`)}onPageShow() {console.info(`${this.tag}, onPageShow()方法被调用了`)}onPageHide() {console.info(`${this.tag}, onPageHide()方法被调用了`)}onBackPress() {console.info(`${this.tag}, onBackPress()方法被调用了`)}
}

7. 基础组件介绍

在这里插入图片描述

7.1 Text

在这里插入图片描述

7.2 TextInput

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. router 路由跳转

import router from '@ohos.router';

跳转

router.pushUrl({url: "pages/Page5"
})

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

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

相关文章

机器学习开源工具BatteryML,一站式分析与预测电池性能

编者按:天下苦锂电池寿命久矣,时闻“开车出,推车回”,又闻“充电两小时,待机两分钟”,亦闻“气温骤降,请注意电池保暖”……随着以锂离子电池为动力源的产品,如手机、电脑、新能源汽…

python3对文件编码的转换处理

前言: 嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 公司同事邀我一起给SQLSERVER 2008导数, 数据来源有高斯和ORACLE, 数据文件保存格式有UTF-8和GBK。 当我在做测试导入的时候发现S…

【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题

前言 💓作者简介: 加油,旭杏,目前大二,正在学习C,数据结构等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏&#x1…

2023备战秋招Java面试八股文合集

Java就业大环境仍然根基稳定,市场上有很多机会,技术好的人前景就好,就看你有多大本事了。小编得到了一份很不错的资源,建议大家可以认真地来看看以下的资料,来提升一下自己的核心竞争力,在面试中轻松应对面…

学习笔记|回顾(1-12节课)|应用模块化的编程|添加函数头|静态变量static|STC32G单片机视频开发教程(冲哥)|阶段小结:应用模块化的编程(上)

文章目录 1.回顾(1-12节课)2.应用模块化的编程(.c .h)Tips:添加函数头创建程序文件三步引脚定义都在.h文件函数定义三步bdata位寻址变量的使用 3.工程文件编写静态变量static的使用完整程序为:demo.c:seg_led.c:seg_led.h: 1.回顾(1-12节课) 一、认识单…

docker系列(3) - 常用软件安装

文章目录 3. docker安装常用软件3.1 安装nginx3.2 安装redis3.3 安装mysql3.4 部署springboot程序3.4.1 编写dockerfile3.4.2 构建镜像3.4.3 启动镜像 3. docker安装常用软件 3.1 安装nginx docker pull nginx#挂载启动 docker run -it -d \ --namenginx \ --networkpub_netw…

【计算机网络】什么是WebSocket?

目录 WebSocket简介协议优点使用场景 WebSocket WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务器主动向客户端推送数据。在WebSocket API中&a…

Leecode1160: 拼写单词

直接使用一个哈希表存整体的结果,一个临时的哈希表每次算一遍,但是1是要设置标志位来判断最后是否正确并加上长度,2是千万要记得每次新建一个空间来存哈希表绝对不能不空间就等于,会出事!!

Copymonkey:AI生成营销广告文案

【产品介绍】 CopyMonkey.ai 是一家成立于2021年的创新型人工智能(AI)初创企业,专注于开发一款强大的AI写作助手。我们的产品旨在帮助用户以更高效且更自然的方式创作各种文本内容,无论是文章、博客、电子邮件、简历还是其他类型的…

Sketch for mac v98.2最新版 修复了打开某些文档时导致 Sketch 崩溃的错误

Sketch是一款专为Mac操作系统设计的矢量图形编辑软件,被广泛应用于UI/UX设计、网页设计、移动应用设计等领域。Sketch提供了各种工具和功能,包括绘图、图形设计、排版等,可以帮助设计师轻松地创建高质量的矢量图形和模型。 Sketch for mac更…

AIGC:【LLM(八)】——Baichuan2技术报告

文章目录 摘要1. 引言2. 预训练2.1 预训练数据(Pre-training Data)2.2 架构(Architecture)2.3 令牌化器(Tokenizer)2.3.1 Positional Embeddings 2.4 激活和规范化(Activations and Normalizati…

巨人互动|Facebook海外户Facebook风控规则有什么

Facebook是全球最大的社交媒体平台之一,每天有数十亿的用户在其上发布、分享和交流各种内容。为了维护平台的安全性和用户体验,Facebook制定了严格的风控规则来监测和处理违规行为。下面小编讲讲Facebook风控规则。 巨人互动|Google海外户&Google Ad…

Ubuntu不能上网解决办法

问题及现象 Ubuntu的虚拟机(18.04)总是莫名就不能上网了。 使用ifconfig -a 查看,ensxx(xx为虚拟机分配的id号)对应的网卡有mac地址,但是没有分配ip地址。 Network中也没有Wired的选项。 临时解决方案 使…

一阶微分方程

目录 可分离变量的方程 齐次微分方程 一阶线性微分方程 伯努科方程 全微分方程 可分离变量的方程 可分离变量的方程是一种常见的一阶常微分方程类型,其特点是可以通过将变量分离到方程的两侧,从而可以分别对各自变量进行积分。一般形式的可分离变量…

ElasticSearch系列-简介与安装详解

全文检索 讲ElasticSearch之前, 需要先提一下全文检索.全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 …

文本直接生成20多种背景音乐,免费版Stable Audio来了!

9月14日,著名开源平台Stability AI在官网发布了,音频生成式AI产品Stable Audio。(免费使用地址:https://www.stableaudio.com/generate) 用户通过文本提示就能直接生成摇滚、爵士、电子、嘻哈、重金属、民谣、流行、朋…

天线原理【1】 天线辐射的物理过程

1 前言 前面讲以振子方程入手分析电磁场问题的解的时候,有网友发信息说这和天线有什么关系,怎么从振子入手分析天线; 那我就开始写几次关于天线的。 有一种说法是,能给任何人讲懂的理论,才说明你真的懂了。 对天线部…

地理地形sdk:Tatuk GIS Developer Kernel for .NET Crack

Tatuk GIS Developer Kernel for .NET 是一个变体,它是受控代码和 .NET GIS SDK,用于为用户 Windows 操作系统创建专业 GIS 软件的过程。它被认为是一个完全针对Win Forms 的.NET CIL,WPF 框架是针对C# 以及VB.NET、VC、Oxy 以及最终与.NET 的…

分布式文件系统对比与选型参考

目录 一、分布式文件系统 1、 数据的存储方式: 2、 数据的读取速率 3、 数据的安全机制 二、主流分布式文件系统介绍 1. GFS(Google File System) 2. HDFS(Hadoop Distributed File System) 3. Ceph …

流程模型相关的数据库表-流程模型相关的数据迁移

1、流程定义数据表(act_re_procdef) 业务流程定义数据表。此表和 ACT_RE_DEPLOYMENT 是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在 ACT_REPROCDEF 表内&#xff0…