先自我先容一下,小编浙江大学毕业,去过华为、字节跳动等大厂,现在阿里P7
深知大多数步调员,想要提拔技能,每每是本身探索发展,但本身不成体系的自学效果低效又漫长,而且极易遇到天花板技能故步自封!
因此网络整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初志也很简单,就是盼望可以大概资助到想自学提拔又不知道该从何学起的朋侪。
既有恰当小白学习的零底子资料,也有恰当3年以上履历的小搭档深入学习提拔的进阶课程,涵盖了95%以上鸿蒙开辟知识点,真正体系化!
由于文件比力多,这里只是将部分目次截图出来,全套包罗大厂面经、学习条记、源码讲义、实战项目、大纲门路、解说视频,而且后续会一连更新
如果你须要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
// 创建新实例并使用给定对象初始化
let storage = new LocalStorage({ ‘PropA’: 47 });
@Component
struct Child {
// @LocalStorageLink变量装饰器与LocalStorage中的’ProA’属性创建双向绑定
@LocalStorageLink(‘PropA’) storLink2: number = 1;
build() {
Button(Child from LocalStorage ${this.storLink2})
// 更改将同步至LocalStorage中的’ProA’以及Parent.storLink1
.onClick(() => this.storLink2 += 1)
}
}
// 使LocalStorage可从@Component组件访问
@Entry(storage)
@Component
struct CompA {
// @LocalStorageLink变量装饰器与LocalStorage中的’ProA’属性创建双向绑定
@LocalStorageLink(‘PropA’) storLink1: number = 1;
build() {
Column({ space: 15 }) {
Button(Parent from LocalStorage ${this.storLink1}) // initial value from LocalStorage will be 47, because ‘PropA’ initialized already
.onClick(() => this.storLink1 += 1)
// @Component子组件主动得到对CompA LocalStorage实例的访问权限。
Child()
}
}
}
复制
@LocalStorageProp和LocalStorage单向同步的简单场景
在下面的示例中,CompA 组件和Child组件分别在当地创建了与storage的’PropA’对应属性的单向同步的数据,我们可以看到:
- CompA中对this.storProp1的修改,只会在CompA中收效,并没有同步回storage;
- Child组件中,Text绑定的storProp2 仍旧体现47。
// 创建新实例并使用给定对象初始化
let storage = new LocalStorage({ ‘PropA’: 47 });
// 使LocalStorage可从@Component组件访问
@Entry(storage)
@Component
struct CompA {
// @LocalStorageProp变量装饰器与LocalStorage中的’ProA’属性创建单向绑定
@LocalStorageProp(‘PropA’) storProp1: number = 1;
build() {
Column({ space: 15 }) {
// 点击后从47开始加1,只改变当前组件体现的storProp1,不会同步到LocalStorage中
Button(Parent from LocalStorage ${this.storProp1})
.onClick(() => this.storProp1 += 1)
Child()
}
}
}
@Component
struct Child {
// @LocalStorageProp变量装饰器与LocalStorage中的’ProA’属性创建单向绑定
@LocalStorageProp(‘PropA’) storProp2: number = 2;
build() {
Column({ space: 15 }) {
// 当CompA改变时,当前storProp2不会改变,体现47
Text(Parent from LocalStorage ${this.storProp2})
}
}
}
复制
@LocalStorageLink和LocalStorage双向同步的简单场景
下面的示例展示了@LocalStorageLink装饰的数据和LocalStorage双向同步的场景
// 构造LocalStorage实例
let storage = new LocalStorage({ ‘PropA’: 47 });
// 调用link9+接口构造’PropA’的双向同步数据,linkToPropA 是全部变量
let linkToPropA = storage.link(‘PropA’);
@Entry(storage)
@Component
struct CompA {
// @LocalStorageLink(‘PropA’)在CompA自界说组件中创建’PropA’的双向同步数据,初始值为47,由于在构造LocalStorage已经给“PropA”设置47
@LocalStorageLink(‘PropA’) storLink: number = 1;
build() {
Column() {
Text(incr @LocalStorageLink variable)
// 点击“incr @LocalStorageLink variable”,this.storLink加1,改变同步回storage,全局变量linkToPropA也会同步改变
.onClick(() => this.storLink += 1)
// 并不发起在组件内使用全局变量linkToPropA.get(),由于大概会有生命周期差异引起的错误。
Text(@LocalStorageLink: ${this.storLink} - linkToPropA: ${linkToPropA.get()})
}
}
}
复制
兄弟节点之间同步状态变量
下面的示例展示了通过@LocalStorageLink双向同步兄弟节点之间的状态。
先看Parent自界说组件中发生的厘革:
- 点击“playCount ${this.playCount} dec by 1”,this.playCount减1,修改同步回LocalStorage中,Child组件中的playCountLink绑定的组件会同步革新;
- 点击“countStorage ${this.playCount} incr by 1”,调用LocalStorage的set接口,更新LocalStorage中“countStorage”对应的属性,Child组件中的playCountLink绑定的组件会同步革新;
- Text组件“playCount in LocalStorage for debug ${storage.get(‘countStorage’)}”没有同步革新,缘故起因是由于storage.get(‘countStorage’)返回的是通例变量,通例变量的更新并不会引起Text组件的重新渲染。
Child自界说组件中的厘革:
- playCountLink的革新会同步回LocalStorage,而且引起兄弟组件和父组件相应的革新。
let storage = new LocalStorage({ countStorage: 1 });
@Component
struct Child {
// 子组件实例的名字
label: string = ‘no name’;
// 和LocalStorage中“countStorage”的双向绑定命据
@LocalStorageLink(‘countStorage’) playCountLink: number = 0;
build() {
Row() {
Text(this.label)
.width(50).height(60).fontSize(12)
Text(playCountLink ${this.playCountLink}: inc by 1)
.onClick(() => {
this.playCountLink += 1;
})
.width(200).height(60).fontSize(12)
}.width(300).height(60)
}
}
@Entry(storage)
@Component
struct Parent {
@LocalStorageLink(‘countStorage’) playCount: number = 0;
build() {
Column() {
Row() {
Text(‘Parent’)
.width(50).height(60).fontSize(12)
Text(playCount ${this.playCount} dec by 1)
.onClick(() => {
this.playCount -= 1;
})
.width(250).height(60).fontSize(12)
}.width(300).height(60)
Row() {
Text(‘LocalStorage’)
.width(50).height(60).fontSize(12)
Text(countStorage ${this.playCount} incr by 1)
.onClick(() => {
storage.set(‘countStorage’, 1 + storage.get(‘countStorage’));
})
.width(250).height(60).fontSize(12)
}.width(300).height(60)
Child({ label: ‘ChildA’ })
Child({ label: ‘ChildB’ })
Text(playCount in LocalStorage for debug ${storage.get<number>('countStorage')})
.width(300).height(60).fontSize(12)
}
}
}
复制
将LocalStorage实例从UIAbility共享到一个或多个视图
上面的实例中,LocalStorage的实例仅仅在一个@Entry装饰的组件和其所属的子组件(一个页面)中共享,如果盼望其在多个视图中共享,可以在所属UIAbility中创建LocalStorage实例,并调用windowStage.loadContent。
// EntryAbility.ts
import UIAbility from ‘@ohos.app.ability.UIAbility’;
import window from ‘@ohos.window’;
export default class EntryAbility extends UIAbility {
storage: LocalStorage = new LocalStorage({
‘PropA’: 47
});
onWindowStageCreate(windowStage: window.WindowStage) {
windowStage.loadContent(‘pages/Index’, this.storage);
}
}
复制
在UI页面通过GetShared接口获取在通过loadContent共享的LocalStorage实例。
// 通过GetShared接口获取stage共享的Storage实例
let storage = LocalStorage.GetShared()
@Entry(storage)
@Component
struct CompA {
// can access LocalStorage instance using
// @LocalStorageLink/Prop decorated variables
@LocalStorageLink(‘PropA’) varA: number = 1;
build() {
Column() {
Text(${this.varA}).fontSize(50)
}
}
}
末了,为了能让各人更好的去学习提拔鸿蒙 (Harmony OS) 开辟技能,小编连夜整理了一份30个G纯血版学习资料(含视频、电子书、学习文档等)以及一份在Github上一连爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开辟手册》(共计890页),盼望对各人有所资助。
纯血版鸿蒙 HarmonyOS 4.0 视频学习资料
须要以上视频学习资料小搭档
请点击→纯血版全套鸿蒙HarmonyOS学习资料
《纯血版华为鸿蒙 (Harmony OS)开辟手册》
这份手册涵盖了当前鸿蒙 (Harmony OS) 开辟技能必把握的焦点知识点
纯血版鸿蒙 (Harmony OS)开辟手册部分出色内容
HarmonyOS 概念:
怎样快速入门?
- 根本概念
- 构建第一个ArkTS应用
- 构建第一个JS应用
- ……
开辟底子知识:
- 应用底子知识
- 设置文件
- 应用数据管理
- 应用安全管理
- 应用隐私掩护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开辟:
- Ability开辟
- UI开辟
- 公共变乱与关照
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 配景任务(Background Task)管理
- 装备管理
- 装备使用信息统计
- DFX
- 国际化开辟
- 折叠屏系列
- .……
网上学习资料一大堆,但如果学到的知识不成体系,遇到题目时只是浅尝辄止,不再深入研究,那么很难做到真正的技能提拔。
须要这份体系化的资料的朋侪,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才气走的更远!岂论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都欢迎到场我们的的圈子(技能交换、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习发展!
用信息统计
网上学习资料一大堆,但如果学到的知识不成体系,遇到题目时只是浅尝辄止,不再深入研究,那么很难做到真正的技能提拔。
须要这份体系化的资料的朋侪,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-95toR9u2-1713217800371)]
一个人可以走的很快,但一群人才气走的更远!岂论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都欢迎到场我们的的圈子(技能交换、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习发展!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |