网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以戳这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
// for simple type
@State count: number = 0;
// value changing can be observed
this.count = 1;
复制
声明ClassA和Model类。
class ClassA {
public value: string;
constructor(value: string) {
this.value = value;
}
}
class Model {
public value: string;
public name: ClassA;
constructor(value: string, a: ClassA) {
this.value = value;
this.name = a;
}
}
复制
@State装饰的类型是Model
// class类型
@State title: Model = new Model(‘Hello’, new ClassA(‘World’));
复制
对@State装饰变量的赋值。
// class类型赋值
this.title = new Model(‘Hi’, new ClassA(‘ArkUI’));
复制
对@State装饰变量的属性赋值。
// class属性的赋值
this.title.value = ‘Hi’
复制
嵌套属性的赋值观察不到。
// 嵌套的属性赋值观察不到
this.title.name.value = ‘ArkUI’
复制
声明ClassA和Model类。
class Model {
public value: number;
constructor(value: number) {
this.value = value;
}
}
复制
@State装饰的对象为Model类型数组时。
@State title: Model[] = [new Model(11), new Model(1)]
复制
数组自身的赋值可以观察到。
this.title = [new Model(2)]
复制
数组项的赋值可以观察到。
this.title[0] = new Model(2)
复制
删除数组项可以观察到。
this.title.pop()
复制
新增数组项可以观察到。
this.title.push(new Model(12))
复制
以下示例为@State装饰的简单类型,count被@State装饰成为状态变量,count的改变引起Button组件的刷新:
@Entry
@Component
struct MyComponent {
@State count: number = 0;
build() {
Button(click times: ${this.count}
)
.onClick(() => {
this.count += 1;
})
}
}
复制
class Model {
public value: string;
constructor(value: string) {
this.value = value;
}
}
@Entry
@Component
struct EntryComponent {
build() {
Column() {
// 此处指定的参数都将在初始渲染时覆盖本地定义的默认值,并不是所有的参数都需要从父组件初始化
MyComponent({ count: 1, increaseBy: 2 })
MyComponent({ title: new Model(‘Hello, World 2’), count: 7 })
}
}
}
@Component
struct MyComponent {
@State title: Model = new Model(‘Hello World’);
@State count: number = 0;
private increaseBy: number = 1;
build() {
Column() {
Text(${this.title.value}
)
Button(Click to change title
).onClick(() => {
// @State变量的更新将触发上面的Text组件内容更新
this.title.value = this.title.value === ‘Hello ArkUI’ ? ‘Hello World’ : ‘Hello ArkUI’;
})
Button(Click to increase count=${this.count}
).onClick(() => {
// @State变量的更新将触发该Button组件的内容更新
this.count += this.increaseBy;
})
}
}
}
复制
从该示例中,我们可以了解到@State变量首次渲染的初始化流程:
@State title: Model = new Model(‘Hello World’);
@State count: number = 0;
复制
MyComponent({ count: 1, increaseBy: 2 })
最后,为了能让大家更好的去学习提升鸿蒙 (Harmony OS) 开发技术,小编连夜整理了一份30个G纯血版学习资料(含视频、电子书、学习文档等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开发手册》(共计890页),希望对大家有所帮助。
需要以上视频学习资料小伙伴
请点击→纯血版全套鸿蒙HarmonyOS学习资料
这份手册涵盖了当前鸿蒙 (Harmony OS) 开发技术必掌握的核心知识点
HarmonyOS 概念:
如何快速入门?
开发基础知识:
基于ArkTS 开发:
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
需要这份系统化的资料的朋友,可以戳这里获取
ttps://img-blog.csdnimg.cn/direct/743b668910224b259a5ffe804fa6d0db.png)
[外链图片转存中…(img-g4gTZCJy-1715449405444)]
[外链图片转存中…(img-4OtJMDQC-1715449405444)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
需要这份系统化的资料的朋友,可以戳这里获取