ArkTS是HarmonyOS優選的主力應用開發語言。ArkTS圍繞應用開發在TypeScript(簡稱TS)生態基礎上做了進一步擴充套件,繼承了TS的所有特性,是TS的超集。
ArkTS在TS的基礎上主要擴充套件瞭如下能力:
以上就是官方對於ArkTS的介紹,對於初學者來說並不算友好,所以我們通過一個登入Demo來了解一下ArkTS。
下拉工程模版,在最後選擇Login Ability
建立完成後的原始碼目錄:
根據官方檔案UIAbility元件生命週期中的描述,下面是一個應用的生命週期
和對應的生命週期時序圖:
所以,登入demo中的EntryAbility.ts
在onWindowStageCreate
方法中通過windowStage.loadContent方法載入了登入頁面作為啟動頁面:
windowStage.loadContent("pages/LoginPage")
通過目錄可以發現,ArkTS將頁面分為兩類分別放在pages
和view
資料夾中:
兩者的區別:
pages
資料夾存放的是一個個獨立的頁面檔案,每個檔案有@Entry
註解來告訴系統這是一個獨立頁面的入口,也有@Component
註解說明是一個頁面檔案view
資料夾存放的是一個個可以被複用的頁面檔案,每個檔案只有@Component
註解簡單類比@Entry和@Component
的檔案就是iOS中的ViewController和Android中的Activity,@Component
註解的檔案就是iOS中的View和Android中的Fragment+View
進入LoginPages.ets主頁面:
@Entry和@Component
的頁面才是獨立頁面struct
作為定義關鍵字,不是classimport
關鍵字引入頁面和自定義元件build
方法構建,與Flutter的寫法類似Title()
,前面要使用@Builder
註解進行說明進入LoginComponent.ets子元件:
與@Entry不一樣的地方:
@Component
的頁面是一個獨立頁面的子元件,無法獨立展示與Flutter與SwifitUI類似,ArkTS也是通過State來進行狀態管理和渲染控制,在上面的登入demo中的LoginComponent.ets
中:
@State
定義了userName和password兩個狀態物件通過上面的登入demo,對ArkTS有了一個基本瞭解,如果需要更進一步瞭解ArkTS,建議還是閱讀官方檔案: