先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
六、用示例解读响应式布局
以下是两个示例代码,分别展示了使用媒体查询和弹性布局来实现响应式布局的方法:
- 使用媒体查询:
在上述示例中,.container
类表示一个容器元素,设置了宽度为100%、高度为300px,并且有一个背景颜色。通过媒体查询@media
,当屏幕宽度小于等于768px时,将容器的高度调整为200px。这样,在较小的屏幕上,容器的高度会相应地进行调整。
- 使用弹性布局:
在上述示例中,.container
类表示一个容器元素,使用了弹性布局模型(Flexbox)。通过设置display: flex
,容器的子元素会自动在水平方向上排列。子元素的.item
类设置了相同的弹性属性flex: 1
,使它们平均占据可用空间。
通过媒体查询@media
,当屏幕宽度小于等于768px时,将容器的flex-direction
属性设置为column
,子元素会自动垂直排列,以适应较小的屏幕。
这两个示例展示了使用媒体查询和弹性布局来实现响应式布局的方法。你可以根据具体的需求和设计要求,调整媒体查询的条件和样式规则,或者修改弹性布局的属性,以实现你所需的响应式效果。
3. 使用栅格系统:
在上述示例中,.container
类表示一个容器元素,使用了栅格系统来划分列数。通过设置display: grid
,容器内的子元素会按照网格布局排列。使用grid-template-columns
属性来定义网格的列数和宽度,repeat(3, 1fr)
表示重复3次,每个列宽度平均占据可用空间。
通过媒体查询@media
,当屏幕宽度小于等于768px时,将网格的列数调整为2列,适应较小的屏幕。当屏幕宽度小于等于480px时,将网格的列数调整为1列,使项目在较小的屏幕上垂直排列。
通过调整栅格的列数和媒体查询的条件,可以实现不同屏幕尺寸下的响应式布局效果。
以上示例代码展示了使用栅格系统来实现响应式布局的方法。你可以根据具体的需求和设计要求,调整栅格的列数、间距以及媒体查询的条件,以实现你所需的响应式效果。
4. 使用CSS的@media规则:
在上述示例中,.container
类表示一个容器元素,设置了宽度为100%、高度为300px,并且有一个背景颜色。
通过使用CSS的@media
规则,根据不同屏幕尺寸应用不同的样式。当屏幕宽度小于等于768px时,使用媒体查询(max-width: 768px)
,将容器的高度调整为200px,并且修改背景颜色为灰色。当屏幕宽度小于等于480px时,使用媒体查询(max-width: 480px)
,将容器的高度调整为150px,并且修改背景颜色为浅灰色。
通过使用不同的媒体查询条件和样式规则,可以根据设备的屏幕尺寸来调整容器的高度和背景颜色,以实现响应式布局效果。
以上示例代码展示了使用CSS的@media
规则来实现响应式布局的方法。你可以根据具体的需求和设计要求,调整媒体查询的条件和样式规则,以实现你所需的响应式效果。
七、以官方helloworld示例代码为例解读组件的动态更新
以上代码展示了一个名为Index的自定义组件,其中包含了一个状态变量message和一个build()方法用于构建UI。
在这个示例中,组件的状态变量message被初始化为"Hello World"。在build()方法中,使用Row()和Column()组件进行横向和纵向布局,并嵌套了一个Text组件来显示message的内容。
如果想要实现组件动态更新,可以通过修改状态变量message的值来触发重新渲染。例如,可以在外部代码中通过调用setState()方法来更新message的值,然后组件会自动根据新的值重新渲染。
以下是示例代码演示如何更新组件的状态变量:
// 导入需要的模块
import { Entry, Component, State, Text, Row, Column } from ‘arkts’;
// 装饰器,指页面入口。
@Entry
// 装饰器,指下面开始自定义组件
@Component
// 自定义组件
struct Index {
// 装饰器,指状态变量,字符串类型,赋值:"Hello World’
@State message: string = “Hello World”;
// 构造函数,UI声明
build() {
// 横向布局组件
Row() {
// 嵌套纵向布局组件
Column() {
// 文本组件,参数
Text(this.message)
// 设置字号
.fontSize(50)
// 设置字体粗细
.fontWeight(FontWeight.Bold);
}
// 设置页面宽度占比百分比
.width(‘100%’);
}
// 设置页面高度占比百分比
.height(‘100%’);
}
}
// 创建Index组件实例
const index = new Index();
// 更新组件的状态变量message的值
index.message = “Hello LingWu”;
// 调用build()方法重新渲染组件
index.build();
在上述代码中,首先导入了所需的模块,然后创建了Index组件的实例。接着,通过修改index.message的值为"Hello LingWu"来更新组件的状态变量。最后,调用index.build()方法来重新渲染组件,从而实现了组件的动态更新。
通过修改状态变量的值并重新渲染组件,可以实现组件的动态更新,以反映新的数据或状态。这样,当状态发生变化时,组件会根据新的值重新渲染,并展示更新后的内容。
八、以官方示例helloworld为例解读生态整合
ArkUI与ArkTS框架的整合使得开发者能够充分利用ArkTS提供的强类型检查和编译时优化功能。ArkTS与TypeScript语言的整合,提供了一套用于构建用户界面的组件和工具,可以帮助开发者更高效地开发Web应用程序。
在示例代码中,我们可以看到通过使用import
语句导入了ArkTS框架的一些核心模块,如Entry
、Component
、State
、Text
、Row
和Column
等。这些模块提供了创建组件、定义状态变量和构建用户界面的功能。
通过使用装饰器(Decorator),我们可以为组件类添加一些元数据,比如@Entry
和@Component
。@Entry
装饰器指定了该组件为页面入口,而@Component
装饰器指定了下面的代码段开始定义自定义组件。
在组件中,我们可以使用@State
装饰器定义状态变量,这些状态变量可以在组件中进行读取和修改。在示例中,我们定义了一个名为message
的状态变量,并将其初始化为"Hello World"。
通过build()
方法,我们可以声明组件的UI结构。在示例中,我们使用了Row()
和Column()
组件来实现横向和纵向布局,并嵌套了一个Text
组件来展示message
的内容。
除了ArkTS框架之外,示例还提到了可以与其他流行的前端工具和框架集成整合,如Webpack和Babel。这意味着开发者可以使用这些工具来进行代码打包、转译和优化等操作,以增强项目的开发和部署能力。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
377121a0c6fcb.png)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-lVE9A98Y-1713422029267)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!