ArkTS學習筆記_封裝復用之@builderParam裝飾器
作用: 在自定義組件中,該裝飾器用于裝飾函數成員變量,@builderParam裝飾的函數成員變量的值必須是經過@builder裝飾的方法。變量初始化后可以在自定義組件內調用。初始化: 可以使用自定義組件的自定義構建函數進行初始化;也可以使用全局自定義構建函數初始化。初始化的工作一般由使用者進行。運用場景: 比方,封裝了一個組件,這個組件有一個對外的回調函數(@builderParam裝飾的函數變量),當想讓調用者添加額外的新功能時,可以實現其回調函數(初始化@builderParam裝飾的函數變量)。簡單的說: @builderParam裝飾器用于聲明一個的成員函數變量,相當于在自定義組件中添加了一個占位符,調用該函數的地方就是占位的地方,當開發者調用該自定義組件時,想添加新的UI描述,就初始化即可,不需要添加新的U描述,可以不初始化。有點類似有容器功能的組件,可以讓調用者往里添加新組件。
裝飾器使用說明
使用組件自身的自定義構建函數或者全局的自定義構建函數
@Builder function overBuilder ( ) { } @Component
struct Child { @Builder doNothingBuilder ( ) { } ; @BuilderParam customBuilderParam : ( ) => void = this . doNothingBuilder; @BuilderParam customOverBuilderParam : ( ) => void = overBuilder; build ( ) { }
}
用父組件自定義的構建函數初始化子組件@BuilderParam裝飾的方法。
@Component
struct Child { @BuilderParam customBuilderParam : ( ) => void ; build ( ) { Column ( ) { this . customBuilderParam ( ) } }
} @Entry
@Component
struct Parent { @Builder componentBuilder ( ) { Text ( ` Parent builder ` ) } build ( ) { Column ( ) { Child ( { customBuilderParam : this . componentBuilder } ) } }
}