HarmoneyOS開發(fā)之ArkTS語法基礎知識

ArkTS基礎知識

ArkTS是HarmonyOS優(yōu)選的主力應用開發(fā)語言。ArkTS圍繞應用開發(fā)在TypeScript(簡稱TS)生態(tài)基礎上做了進一步擴展,繼承了TS的所有特性,是TS的超集。因此,在學習ArkTS語言之前,建議開發(fā)者具備TS語言開發(fā)能力。官方地址:ArkTS

1. 基本語法

ArkTS定義了聲明式UI描述、自定義組件和動態(tài)擴展UI元素的能力,再配合ArkUI開發(fā)框架中的系統(tǒng)組件及其相關的事件方法、屬性方法等共同構成了UI開發(fā)的主體。

  • ArkTS基本組成如圖

    ArkTS基礎-1.png
  • 裝飾器: 用于裝飾類、結構、方法以及變量,并賦予其特殊的含義。如上述示例中@Entry、@Component和@State都是裝飾器,@Component表示自定義組件,@Entry表示該自定義組件為入口組件,@State表示組件中的狀態(tài)變量,狀態(tài)變量變化會觸發(fā)UI刷新。

  • UI描述:以聲明式的方式來描述UI的結構,例如build()方法中的代碼塊。

  • 自定義組件:可復用的UI單元,可組合其他組件,如上述被@Component裝飾的struct Hello。

  • 系統(tǒng)組件:ArkUI框架中默認內置的基礎和容器組件,可直接被開發(fā)者調用,比如示例中的Column、Text、Divider、Button。

  • 屬性方法:組件可以通過鏈式調用配置多項屬性,如fontSize()、width()、height()、backgroundColor()等。

  • 事件方法:組件可以通過鏈式調用設置多個事件的響應邏輯,如跟隨在Button后面的onClick()。

  • 系統(tǒng)組件、屬性方法、事件方法具體使用可參考基于ArkTS的聲明式開發(fā)范式。

除此之外,ArkTS擴展了多種語法范式來使開發(fā)更加便捷:

  • @Builder/@BuilderParam:特殊的封裝UI描述的方法,細粒度的封裝和復用UI描述。

  • @Extend/@Styles:擴展內置組件和封裝屬性樣式,更靈活地組合內置組件。

  • stateStyles:多態(tài)樣式,可以依據(jù)組件的內部狀態(tài)的不同,設置不同樣式。

2. 狀態(tài)管理

ArkTS提供了多維度的狀態(tài)管理機制。在UI開發(fā)框架中,與UI相關聯(lián)的數(shù)據(jù)可以在組件內使用,也可以在不同組件層級間傳遞,比如父子組件之間、爺孫組件之間,還可以在應用全局范圍內傳遞或跨設備傳遞。另外,從數(shù)據(jù)的傳遞形式來看,可分為只讀的單向傳遞和可變更的雙向傳遞。開發(fā)者可以靈活地利用這些能力來實現(xiàn)數(shù)據(jù)和UI的聯(lián)動。

3. 渲染機制

ArkTS提供了渲染控制的能力。條件渲染可根據(jù)應用的不同狀態(tài),渲染對應狀態(tài)下的UI內容。循環(huán)渲染可從數(shù)據(jù)源中迭代獲取數(shù)據(jù),并在每次迭代過程中創(chuàng)建相應的組件。數(shù)據(jù)懶加載從數(shù)據(jù)源中按需迭代數(shù)據(jù),并在每次迭代過程中創(chuàng)建相應的組件。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容