網(wǎng)站正在建設(shè)中的圖片素材什么是seo搜索引擎優(yōu)化
一、概述
????????ArkTS是鴻蒙生態(tài)的應(yīng)用開發(fā)語言。它在保持TypeScript(簡稱TS)基本語法風(fēng)格的基礎(chǔ)上,對TS的動態(tài)類型特性施加更嚴(yán)格的約束,引入靜態(tài)類型。同時,提供了聲明式UI、狀態(tài)管理等相應(yīng)的能力,讓開發(fā)者可以以更簡潔、更自然的方式開發(fā)高性能應(yīng)用。
? ? ? ? 簡而言之,ArkTS是華為官方推薦的HarmonyOS開發(fā)的主力語言,它是華為自己開發(fā)的語言。由于HarmonyOS3.0之后就不再支持Java開發(fā)了,因此我們要在鴻蒙系統(tǒng)上開發(fā)app,就需要學(xué)習(xí)這門語言。
特點
- 開發(fā)效率高,體驗好
????????ArkTS專注于移動端的開發(fā),雖然傳統(tǒng)的前端網(wǎng)頁開發(fā)也同樣可以實現(xiàn),不過學(xué)過web前端的都知道,一個網(wǎng)頁的實現(xiàn)需要同時使用HTML,JavaScript,CSS這三種不同語言,它們語法完全不同,開發(fā)體驗并不良好。不過使用ArkTS開發(fā)移動端的話就沒有這個問題了,僅僅這一種語言,一種語法,開發(fā)起來就比較舒服了。
比如這個,實現(xiàn)一個點擊自增按鈕,ArkTS所操作方式的完全就是 .屬性(賦值)? 進行操縱。這對于習(xí)慣使用Java開發(fā)的人來說可以說是非常舒服了。
- 性能上并沒有下降,執(zhí)行性能非常高效
- 而且還有多系統(tǒng)適配,接入能力
開發(fā)工具
DevEco Studio:HUAWEI DevEco Studio和SDK下載和升級 | HarmonyOS開發(fā)者
注意它需要node.js環(huán)境,版本最低不能低于14.19.1,最高不能高于17.0.0。
使用NVM實現(xiàn)多版本Node.js的版本共存和無縫切換_nodejs多版本共存-CSDN博客https://blog.csdn.net/m0_56308072/article/details/130894356?spm=1001.2014.3001.5501
這樣檢測的時候沒有報錯就可以使用了,又報錯直接點擊后面的安裝即可。
二、TypeScript基本語法
ArkTS是基于TypeScipt開發(fā)的,其語法也是十分的相似。因此我們需要先了解TypeScipt的基本語法,方便ArkTS的學(xué)習(xí)。
目錄
- 變量聲明
- 條件控制
- 循環(huán)迭代
- 函數(shù)
- 類和接口
- 模塊開發(fā)
1、變量聲明
TypeScript在JavaScript的基礎(chǔ)上加入了靜態(tài)的類型檢查功能,因此與JavaScrpt那極其自由的語法不同,每一個變量都有固定的數(shù)據(jù)類型。
JS的語法:let msg = 'hello world'
TS的語法:let msg:string = 'hello world'
其實就是在JS的基礎(chǔ)上多了一步聲明數(shù)據(jù)類型。
?想要編寫一下代碼對語法進行練習(xí)和熟悉,可以使用TypeScript官方網(wǎng)站上的在線編寫:TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
直接在這里練習(xí)就行了。
2、 條件控制
TypeScript與大多數(shù)開發(fā)語言類似,支持基于if-else和switch的條件控制
===是JavaScript中的一個特殊運算符,它會嚴(yán)格要求兩個比較的數(shù)據(jù)的數(shù)據(jù)類型,TypeScript將其繼承了下來。
因為在JavaScript是一門弱類型語言,它不強調(diào)數(shù)據(jù)的類型,"字符串'21' == 整型21"?始終為true,所有有了===這個運算符比較一下數(shù)據(jù)類型。
其次還有一個需要注意的一點是
在TypeScript中,空字符串、0、null、undefined都被認(rèn)為是false。
因此你可以直接將一個變量作為一個判斷的標(biāo)準(zhǔn),這點與C++很相似。
3、循環(huán)迭代
TypeScript支持for和while循環(huán),并且為一些內(nèi)置類型如Array等提供了快捷迭代的語法
?相信有編程基礎(chǔ)的大家都快把循環(huán)語句寫爛了。
4、函數(shù)
TypeScript通常利用function關(guān)鍵字聲明函數(shù),并且支持可選參數(shù),默認(rèn)參數(shù),箭頭函數(shù)等特殊語法
可選參數(shù)就是直接在參數(shù)后面加上 ? 默認(rèn)參數(shù)就是直接在參數(shù)中賦值,注意此時如果有參數(shù)傳遞時就用傳遞來的參數(shù),沒有參數(shù)傳入時默認(rèn)參數(shù)才會生效?
5、類和接口
TypeScript具備面向?qū)ο缶幊痰幕菊Z法,例如interface,class,enum等。也具備封裝、繼承、多態(tài)等面向?qū)ο蠡咎卣?/p>
吐槽:好像Java和JS雜交之后出來的產(chǎn)物。我們再來看一個既視感很強的例子
?
6、模塊開發(fā)
應(yīng)用復(fù)雜時,我們可以把通用功能抽取到單獨的ts文件中,每個文件都是一個模塊(module)。模塊可以相互加載,提高代碼復(fù)用性
?
三、ArkTS快速入門
項目創(chuàng)建
創(chuàng)建一個空項目
簡單解釋一下其中的配置項:
- Project name是開發(fā)者可以自行設(shè)置的項目名稱,這里根據(jù)自己選擇修改為自己項目名稱。
- Bundle name是包名稱,默認(rèn)情況下應(yīng)用ID也會使用該名稱,應(yīng)用發(fā)布時對應(yīng)的ID需要保持一致。
- Save location為工程保存路徑,建議用戶自行設(shè)置相應(yīng)位置。
- Compile SDK是編譯的API版本,這里默認(rèn)選擇API9。
- Model選擇Stage模型,其他保持默認(rèn)即可。
吐槽:怎么跟IDEA長得這么像
目錄結(jié)構(gòu)?
左邊的目錄大多是配置文件,用到的時候再講,現(xiàn)在先將其切換為Ohos,IDE會自動將目錄按照類型分類
- AppScope:主要用于存放整個應(yīng)用公共的信息與資源
- entry:入口,初始模塊。用于存放編寫的代碼文件
- configuration:存放相應(yīng)模塊的配置文件
- resource對應(yīng)模塊內(nèi)的公共資源
- entryability:存放ability文件,用于當(dāng)前ability應(yīng)用邏輯和生命周期管理。
- pages:存放UI界面相關(guān)代碼文件,初始會生成一個Index頁面。
- 最外層的configuration:則是存放工程應(yīng)用級的配置文件
既然是鴻蒙移動端開發(fā),那么就需要一個鴻蒙系統(tǒng)的手機。不過我們不需要真的去購買一臺手機,IDE中有自帶的模擬器。
點擊右側(cè)的Previewer,即可看到index.ets文件的效果(ArkTS寫的文件后綴統(tǒng)一叫.ets)?
index.ets代碼解釋
邏輯清晰了之后,我們可以嘗試使用官方的ArkUI直接拼接一個頁面出來(這里僅展示一下,后面會具體學(xué)習(xí)ArkUI)
其頁面的基本骨架就是如此
@Entry
@Component
struct Index {build() {}
}
拼接UI
@Entry
@Component
struct Index {build() {Column({space: 20}){Image('logo.png')TextInput({placeholder: '用戶名'})TextInput({placeholder: '密碼'}).type(InputType.Password).showPasswordIcon(true)Button('登錄')Row(){Checkbox()Text('記住我').fontColor('#36D')}}.width('100%')}
}
?最終效果