论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙HarmonyOS开辟框架—ArkTS语言(基本语法 三)_实验 ...
鸿蒙HarmonyOS开辟框架—ArkTS语言(基本语法 三)_实验三 arkts底子语法 ...
老婆出轨
论坛元老
|
2024-6-14 21:23:30
|
显示全部楼层
|
阅读模式
楼主
主题
1009
|
帖子
1009
|
积分
3027
先自我先容一下,小编浙江大学结业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是本身探索成长,但本身不成体系的自学效果低效又漫长,而且极易碰到天花板技能故步自封!
因此网络整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简朴,就是盼望能够资助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零底子资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开辟知识点,真正体系化!
由于文件比较多,这里只是将部门目次截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
}
build() {
Column() {
// this.showChild为true,创建Child子组件,实验Child aboutToAppear
if (this.showChild) {
Child()
}
// this.showChild为false,删除Child子组件,实验Child aboutToDisappear
Button(‘create or delete Child’).onClick(() => {
this.showChild = false;
})
// push到Page2页面,实验onPageHide
Button(‘push to next page’)
.onClick(() => {
router.pushUrl({ url: ‘pages/Page2’ });
})
}
}
}
@Component
struct Child {
@State title: string = ‘Hello World’;
// 组件生命周期
aboutToDisappear() {
console.info(‘[lifeCycle] Child aboutToDisappear’)
}
// 组件生命周期
aboutToAppear() {
console.info(‘[lifeCycle] Child aboutToAppear’)
}
build() {
Text(this.title).fontSize(50).onClick(() => {
this.title = ‘Hello ArkUI’;
})
}
}
复制
以上示例中,Index页面包含两个自界说组件,一个是被@Entry装饰的MyComponent,也是页面的入口组件,即页面的根节点;一个是Child,是MyComponent的子组件。只有@Entry装饰的节点才可以生效页面的生命周期方法,所以MyComponent中声明白当前Index页面的页面生命周期函数。MyComponent和其子组件Child也同时也声明白组件的生命周期函数。
应用冷启动的初始化流程为:MyComponent aboutToAppear --> MyComponent build --> Child aboutToAppear --> Child build --> Child build实验完毕 --> MyComponent build实验完毕 --> Index onPageShow。
点击“delete Child”,if绑定的this.showChild变成false,删除Child组件,会实验Child aboutToDisappear方法。
点击“push to next page”,调用router.pushUrl接口,跳转到另外一个页面,当前Index页面隐藏,实验页面生命周期Index onPageHide。此处调用的是router.pushUrl接口,Index页面被隐藏,并没有销毁,所以只调用onPageHide。跳转到新页面后,实验初始化新页面的生命周期的流程。
如果调用的是router.replaceUrl,则当前Index页面被销毁,实验的生命周期流程将变为:Index onPageHide --> MyComponent aboutToDisappear --> Child aboutToDisappear。上文已经提到,组件的销毁是从组件树上直接摘下子树,所以先调用父组件的aboutToDisappear,再调用子组件的aboutToDisAppear,然后实验初始化新页面的生命周期流程。
点击返回按钮,触发页面生命周期Index onBackPress。最小化应用或者应用进入后台,触发Index onPageHide。这两个状态下应用都没有被销毁,所以并不会实验组件的aboutToDisappear 。应用回到前台,实验Index onPageShow。
退出应用,实验Index onPageHide --> MyComponent aboutToDisappear --> Child aboutToDisappear。
@Builder装饰器:自界说构建函数
前面章节先容了如何创建一个自界说组件。该自界说组件内部UI布局固定,仅与使用方举行数据传递。ArkUI还提供了一种更轻量的UI元素复用机制@Builder,@Builder所装饰的函数遵照build()函数语法规则,开辟者可以将重复使用的UI元素抽象成一个方法,在build方法里调用。
为了简化语言,将@Builder装饰的函数也称为“自界说构建函数”。
装饰器使用说明
自界说组件内自界说构建函数
界说的语法:
@Builder myBuilderFunction({ … })
复制
使用方法:
this.myBuilderFunction({ … })
复制
允许在自界说组件内界说一个或多个自界说构建函数,该函数被认为是该组件的私有、特殊范例的成员函数。
自界说构建函数可以在所属组件的build方法和其他自界说构建函数中调用,但不允许在组件外调用。
在自界说函数体中,this指代当前所属组件,组件的状态变量可以在自界说构建函数内访问。发起通过this访问自界说组件的状态变量而不是参数传递。
全局自界说构建函数
界说的语法:
@Builder function MyGlobalBuilderFunction({ … })
复制
使用方法:
MyGlobalBuilderFunction()
复制
全局的自界说构建函数可以被整个应用获取,不允许使用this和bind方法。
如果不涉及组件状态厘革,发起使用全局的自界说构建方法。
参数传递规则
自界说构建函数的参数传递有按值传递和按引用传递两种,均需服从以下规则:
参数的范例必须与参数声明的范例同等,不允许undefined、null和返回undefined、null的表达式。
在自界说构建函数内部,不允许改变参数值。如果需要改变参数值,且同步回调用点,发起使用@Link。
@Builder内UI语法遵照UI语法规则。
按引用传递参数
按引用传递参数时,传递的参数可为状态变量,且状态变量的改变会引起@Builder方法内的UI刷新。ArkUI提供$$作为按引用传递参数的范式。
ABuilder( $$ : { paramA1: string, paramB1 : string } );
复制
@Builder function ABuilder(KaTeX parse error: Can't use function '$' in math mode at position 64: …arByReference: $̲{.paramA1} `)
}
}
@Entry
@Component
struct Parent {
@State label: string = ‘Hello’;
build() {
Column() {
// 在Parent组件中调用ABuilder的时间,将this.label引用传递给ABuilder
ABuilder({ paramA1: this.label })
Button(‘Click me’).onClick(() => {
// 点击“Click me”后,UI从“Hello”刷新为“ArkUI”
this.label = ‘ArkUI’;
})
}
}
}
复制
按值传递参数
调用@Builder装饰的函数默认按值传递。当传递的参数为状态变量时,状态变量的改变不会引起@Builder方法内的UI刷新。所以当使用状态变量的时间,推荐使用按引用传递。
@Builder function ABuilder(paramA1: string) {
Row() {
Text(UseStateVarByValue: ${paramA1} )
}
}
@Entry
@Component
struct Parent {
label: string = ‘Hello’;
build() {
Column() {
ABuilder(this.label)
}
}
}
末了,为了能让各人更好的去学习提升鸿蒙 (Harmony OS) 开辟技能,小编连夜整理了一份30个G
纯血版
学习资料(含
视频
、
电子书
、
学习文档
等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开辟手册》(共计890页),盼望对各人有所资助。
纯血版鸿蒙 HarmonyOS 4.0 视频学习资料
需要以上视频学习资料小伙伴
请点击→纯血版全套鸿蒙HarmonyOS学习资料
《纯血版华为鸿蒙 (Harmony OS)开辟手册》
这份手册涵盖了当前鸿蒙 (Harmony OS) 开辟技能必掌握的核心知识点
纯血版鸿蒙 (Harmony OS)开辟手册部门精彩内容
HarmonyOS 概念:
体系界说
技能架构
技能特性
体系安全
如何快速入门?
基本概念
构建第一个ArkTS应用
构建第一个JS应用
……
开辟底子知识:
应用底子知识
配置文件
应用数据管理
应用安全管理
应用隐私保护
三方应用调用管控机制
资源分类与访问
学习ArkTS语言
网上学习资料一大堆,但如果学到的知识不成体系,碰到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技能提升。
需要这份体系化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都接待加入我们的的圈子(技能交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
隐私保护
三方应用调用管控机制
资源分类与访问
学习ArkTS语言
网上学习资料一大堆,但如果学到的知识不成体系,碰到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技能提升。
需要这份体系化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-sMLkKW0P-1713217731303)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都接待加入我们的的圈子(技能交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
老婆出轨
论坛元老
这个人很懒什么都没写!
楼主热帖
1000套安卓(Android)毕业设计(带论 ...
【Linux学习】网络基础 和 SOCKET套接 ...
在工作中离屏真的不重要吗,代码优化就 ...
设计模式必知必会系列终章
牛客SQL刷题第三趴——SQL大厂面试真题 ...
Git + Jenkins 自动化 NGINX 发布简易 ...
记一次线上问题 → Deadlock 的分析与 ...
MySQL完整版详解
什么是超融合?
SRC基础抓包
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
终端安全
向量数据库
图数据库
Java
网络安全
数据安全
快速回复
返回顶部
返回列表