鸿蒙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时正确地使用了这些类,并且适当地使用了数据绑定和状态管理机制。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2023-06-25 github.com 打不开的准确方法