鸿蒙extends和@Observed和constructor构造函数的复习
@Observed
class ContactArray extends Array<Contact> {
}
@Observed
class ContactGroup {
title: string;
contacts: ContactArray
constructor(title: string, contacts: ContactArray) {
this.title = title;
this.contacts = contacts;
}
}
在上面代码片段中,定义了两个类:ContactArray 和 ContactGroup。ContactArray 是一个继承自 Array<Contact> 的类,而 ContactGroup 是一个包含标题和联系人列表的类。这里使用了 @Observed 装饰器,它用于标记一个类,使得它的属性变化能够被框架检测到,从而触发视图的更新。
在 ContactGroup 类中,title 属性用于存储联系人组的标题,而 contacts 属性是一个 ContactArray 类型的实例,用于存储联系人列表。ContactArray 由于继承了 Array<Contact>,因此它本质上是一个数组,但是它的变化会被 @Observed 装饰器检测到。
这种设计模式在HarmonyOS开发中非常有用,尤其是当您需要创建一个包含可观察数组的复杂对象时。通过这种方式,可以确保当数组或数组中的对象发生变化时,依赖于这些数据的UI组件能够自动更新。
在 ContactGroup 类的构造函数中,constructor 方法用于初始化新创建的 ContactGroup 实例。这个构造函数接收两个参数:
title: string:这是用来指定联系人组标题的字符串。contacts: ContactArray:这是一个ContactArray类型的对象,它包含了一系列的联系人。
构造函数的工作流程如下:
this.title = title;:将传入的title参数值赋给ContactGroup实例的title属性。this.contacts = contacts;:将传入的contacts参数值赋给ContactGroup实例的contacts属性。
由于 ContactArray 类继承自 Array<Contact>,contacts 属性将存储一个 Contact 类型的数组。这意味着 ContactGroup 实例将能够包含一个联系人列表,每个联系人都是一个 Contact 对象。
在HarmonyOS开发中,这种构造函数的使用模式允许您在创建 ContactGroup 实例时,同时指定联系人组的标题和联系人列表。这样,可以方便地管理和组织联系人数据,并在UI组件中使用这些数据。
请注意,为了使 @Observed 装饰器正常工作,需要确保在构建UI时正确地使用了这些类,并且适当地使用了数据绑定和状态管理机制。

浙公网安备 33010602011771号