鸿蒙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 和 ContactGroupContactArray 是一个继承自 Array<Contact> 的类,而 ContactGroup 是一个包含标题和联系人列表的类。这里使用了 @Observed 装饰器,它用于标记一个类,使得它的属性变化能够被框架检测到,从而触发视图的更新。

在 ContactGroup 类中,title 属性用于存储联系人组的标题,而 contacts 属性是一个 ContactArray 类型的实例,用于存储联系人列表。ContactArray 由于继承了 Array<Contact>,因此它本质上是一个数组,但是它的变化会被 @Observed 装饰器检测到。

这种设计模式在HarmonyOS开发中非常有用,尤其是当您需要创建一个包含可观察数组的复杂对象时。通过这种方式,可以确保当数组或数组中的对象发生变化时,依赖于这些数据的UI组件能够自动更新。

ContactGroup 类的构造函数中,constructor 方法用于初始化新创建的 ContactGroup 实例。这个构造函数接收两个参数:

  1. title: string:这是用来指定联系人组标题的字符串。
  2. 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时正确地使用了这些类,并且适当地使用了数据绑定和状态管理机制。

posted @   多见多闻  阅读(135)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2023-06-25 github.com 打不开的准确方法
点击右上角即可分享
微信分享提示