0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

最通俗易懂的ArkTS語言入門指南

OpenHarmony技術(shù)社區(qū) ? 來源:OST開源開發(fā)者 ? 2023-06-18 15:12 ? 次閱讀

本文為我整理出來最通俗易懂的 ArkTS 語言入門指南。

創(chuàng)建項目

打開我們的 DevEco Studio,進入以下界面:

88b5753a-0da6-11ee-962d-dac502259ad0.png

點擊 Create Project,進行創(chuàng)建:

88bd5188-0da6-11ee-962d-dac502259ad0.png

這里幫我們默認選好第一個了,我們直接點 Next 就可以進入下一步完成創(chuàng)建。

88c49308-0da6-11ee-962d-dac502259ad0.png

這樣我們的新的項目就創(chuàng)建完成了:

88d0b606-0da6-11ee-962d-dac502259ad0.png

這樣,我們的項目就創(chuàng)建好了。

基本語法概述

當(dāng)我們打開這個 hello world 的時候,是不是整個人都有些懵?不知道從哪里下手了是不是呀?

不要緊,咱們來把它分解開來:

88de14f4-0da6-11ee-962d-dac502259ad0.png

就可以把他們拆成這幾個部分了,如果看不懂可以暫時忽略下面冒號后面的內(nèi)容:

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

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

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

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

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

事件方法:組件可以通過鏈式調(diào)用設(shè)置多個事件的響應(yīng)邏輯,如跟隨在Button后面的 onClick()。

解釋這些東西一大堆,對新手來說,理解有那么一點不容易,只要記住這個大概的格式,就像這個樣子。

@Entry
@Component
structIndex{
//放你寫的數(shù)據(jù)

build(){
//放你寫的頁面代碼

}
}
你所需要寫的東西就可以直接往里面填了。

布局

下面的內(nèi)容有些復(fù)雜,新手看不懂可以暫時只看線性布局,這個是我們最常用的一種布局方式。

①線性布局(Row、Column)

線性布局(Row、Column):如果布局內(nèi)子元素為復(fù)數(shù)個,且能夠以某種方式線性排列時優(yōu)先考慮此布局。

②層疊布局(Stack)

層疊布局(Stack):組件需要有堆疊效果時優(yōu)先考慮此布局,層疊布局的堆疊效果不會占用或影響其他同容器內(nèi)子組件的布局空間。

例如 Panel 作為子組件彈出時將其他組件覆蓋更為合理,則優(yōu)先考慮在外層使用堆疊布局。

③彈性布局(Flex)

彈性布局(Flex):彈性布局是與線性布局類似的布局方式。區(qū)別在于彈性布局默認能夠使子組件壓縮或拉伸。

在子組件需要計算拉伸或壓縮比例時優(yōu)先使用此布局,可使得多個容器內(nèi)子組件能有更好的視覺上的填充容器效果。

④相對布局(RelativeContainer)

相對布局(RelativeContainer):相對布局是在二維空間中的布局方式,不需要遵循線性布局的規(guī)則,布局方式更為自由。

通過在子組件上設(shè)置錨點規(guī)則(AlignRules)使子組件能夠?qū)⒆约涸跈M軸、縱軸中的位置與容器或容器內(nèi)其他子組件的位置對齊。

設(shè)置的錨點規(guī)則可以天然支持子元素壓縮、拉伸,堆疊或形成多行效果。在頁面元素分布復(fù)雜或通過線性布局會使容器嵌套層數(shù)過深時推薦使用。

⑤柵格布局(GridRow、GridCol)

柵格布局(GridRow、GridCol):柵格是多設(shè)備場景下通用的輔助定位工具,通過將空間分割為有規(guī)律的柵格。

柵格不同于網(wǎng)格布局固定的空間劃分,可以實現(xiàn)不同設(shè)備下不同的布局,空間劃分更隨心所欲,從而顯著降低適配不同屏幕尺寸的設(shè)計及開發(fā)成本,使得整體設(shè)計和開發(fā)流程更有秩序和節(jié)奏感,同時也保證多設(shè)備上應(yīng)用顯示的協(xié)調(diào)性和一致性,提升用戶體驗。推薦內(nèi)容相同但布局不同時使用。

⑥媒體查詢(@ohos.mediaquery)

媒體查詢(@ohos.mediaquery):媒體查詢可根據(jù)不同設(shè)備類型或同設(shè)備不同狀態(tài)修改應(yīng)用的樣式。例如根據(jù)設(shè)備和應(yīng)用的不同屬性信息設(shè)計不同的布局,以及屏幕發(fā)生動態(tài)改變時更新應(yīng)用的頁面布局。

⑦列表(List)

列表(List):使用列表可以輕松高效地顯示結(jié)構(gòu)化、可滾動的信息。在 ArkUI 中,列表具有垂直和水平布局能力和自適應(yīng)交叉軸方向上排列個數(shù)的布局能力,超出屏幕時可以滾動。列表適合用于呈現(xiàn)同類數(shù)據(jù)類型或數(shù)據(jù)類型集,例如圖片和文本。

⑧網(wǎng)格(Grid)

網(wǎng)格(Grid):網(wǎng)格布局具有較強的頁面均分能力,子組件占比控制能力,是一種重要自適應(yīng)布局。

網(wǎng)格布局可以控制元素所占的網(wǎng)格數(shù)量、設(shè)置子組件橫跨幾行或者幾列,當(dāng)網(wǎng)格容器尺寸發(fā)生變化時,所有子組件以及間距等比例調(diào)整。

推薦在需要按照固定比例或者均勻分配空間的布局場景下使用,例如計算器、相冊、日歷等。

⑨輪播(Swiper)

輪播(Swiper):輪播組件通常用于實現(xiàn)廣告輪播、圖片預(yù)覽、可滾動應(yīng)用等。

使用如下:

暫時看不懂也沒關(guān)系,我們暫時只看用的最多的線性布局

線性布局分為兩種:

一種是豎直方向的線性布局 Column

另一種是水平方向的線性布局 Row

88ec708a-0da6-11ee-962d-dac502259ad0.png

我們把他們加入我們寫的代碼中:

@Entry
@ComponentstructIndex{
//放你寫的數(shù)據(jù)
build(){
Row(){
Column(){
//放你寫的組件
}
}
}
}
這樣頁面布局就寫好了,下面我們要開始在頁面布局中寫組件了。

組件

下面我們就在我們的頁面中添加組件。 常見的組件有:

按鈕

單選框

切換按鈕

進度條

文本顯示

文本輸入

自定義彈窗

視頻播放

XComponent

今天我們先來看一下按鈕和文本顯示。

①組件格式

組件的格式基本上都是這個樣子:

88f56e38-0da6-11ee-962d-dac502259ad0.png

②文本組件使用

這個我們點右邊的這個小眼睛可以預(yù)覽效果:

8901831c-0da6-11ee-962d-dac502259ad0.png

也就是這個樣子:

890d6af6-0da6-11ee-962d-dac502259ad0.png

同樣的,我們在線性布局的下面加上修飾的東西,可以讓這個文字顯示在屏幕中央。

8916a166-0da6-11ee-962d-dac502259ad0.png

.width('100%') 是讓垂直布局的寬度占據(jù)整個屏幕的寬度,讓文本位于左右居中。 同理 .height('100%') 是讓水平布局的高度占據(jù)整個屏幕的高度,讓文本上下居中。

③按鈕組件使用

然后我們可以增加一個按鈕 Bottom 組件:

@Entry
@Component
structIndex{
@Statemessage:string='HelloWorld‘
build(){
Row(){
Column(){
//文本組件
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
//按鈕組件
Button('按鈕中的內(nèi)容')
.onClick(()=>{//點擊
//點擊按鈕后發(fā)生的事情
})
}
.width('100%')
}
.height('100%')
}

}

例如我用來演示的這個:

89218de2-0da6-11ee-962d-dac502259ad0.png

點擊按鈕后,message 的內(nèi)容就會發(fā)生變化,點擊按鈕后的效果如下:

892bd23e-0da6-11ee-962d-dac502259ad0.png

我們今天的內(nèi)容就到這里。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1954

    瀏覽量

    29897

原文標(biāo)題:HarmonyOS開發(fā):ArkTS入門

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    WinCC 7.5入門指南

    WinCC 7.5入門指南
    發(fā)表于 10-21 10:37 ?0次下載

    通俗易懂的理解,什么是芯片?

    我們在日常工作和生活中,經(jīng)常會使用到各種各樣的電子或電器產(chǎn)品,例如電腦、手機、電視、冰箱、洗衣機等。 這些產(chǎn)品,如果我們把它拆開,都會看到類似下面這樣的一塊綠色板子。 大家都知道,這個綠色板子,叫做電路板。更官方一點的名稱,叫印制電路板,也就是PCB(Printed Circuit Board,國外有時候也叫PWB,Printed Wire Board)。 在PCB上,焊接了很多的電子元器件,例如電容、電阻、電感等。 我們還可以看到,有一些黑色的方形元件。 沒錯,這個
    的頭像 發(fā)表于 08-22 13:32 ?6605次閱讀
    <b class='flag-5'>通俗易懂</b>的理解,什么是芯片?

    【《大語言模型應(yīng)用指南》閱讀體驗】+ 俯瞰全書

    上周收到《大語言模型應(yīng)用指南》一書,非常高興,但工作項目繁忙,今天才品鑒體驗,感謝作者編寫了一部內(nèi)容豐富、理論應(yīng)用相結(jié)合、印刷精美的著作,也感謝電子發(fā)燒友論壇提供了一個讓我了解大語言模型和機器學(xué)習(xí)
    發(fā)表于 07-21 13:35

    【大語言模型:原理與工程實踐】探索《大語言模型原理與工程實踐》2.0

    讀者更好地把握大語言模型的應(yīng)用場景和潛在價值。盡管涉及復(fù)雜的技術(shù)內(nèi)容,作者盡力以通俗易懂語言解釋概念,使得非專業(yè)背景的讀者也能夠跟上節(jié)奏。圖表和示例的運用進一步增強了書籍的可讀性。本書適合對人工智能
    發(fā)表于 05-07 10:30

    HyperLynx入門指南

    HyperLynx入門指南
    發(fā)表于 05-06 10:17 ?4次下載

    發(fā)酵罐攪拌器軸磨損修復(fù)方法

    這樣修復(fù)發(fā)酵罐攪拌器軸磨損通俗易懂
    發(fā)表于 04-24 18:43 ?0次下載

    鴻蒙OS開發(fā)實戰(zhàn):【ArkTS 實現(xiàn)MQTT協(xié)議(2)】

    1. 協(xié)議傳輸通道僅為TCPSocket 2. 基于HarmonyOS SDK API 9開發(fā) 3. 開發(fā)語言ArkTS,TypeScript
    的頭像 發(fā)表于 04-01 14:48 ?1346次閱讀
    鴻蒙OS開發(fā)實戰(zhàn):【<b class='flag-5'>ArkTS</b> 實現(xiàn)MQTT協(xié)議(2)】

    ArkTS語言基礎(chǔ)類庫-解析

    ArkTS語言基礎(chǔ)類庫是HarmonyOS系統(tǒng)上為應(yīng)用開發(fā)者提供的常用基礎(chǔ)能力,主要包含能力如下圖所示。 圖1 ArkTS語言基礎(chǔ)類庫能力示意圖 提供[異步并發(fā)和多線程并發(fā)]的能力。
    發(fā)表于 02-20 16:44

    鴻蒙語言ArkTS(更好的生產(chǎn)力與性能)

    ArkTS是鴻蒙生態(tài)的應(yīng)用開發(fā)語言 ArkTS提供了聲明式UI范式、狀態(tài)管理支持等相應(yīng)的能力,讓開發(fā)者可以以更簡潔、更自然的方式開發(fā)應(yīng)用。 同時,它在保持TypeScript(簡稱TS)基本語法
    發(fā)表于 02-17 15:56

    鴻蒙開發(fā)之ArkTS基礎(chǔ)知識

    一、ArkTS簡介 ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配了鴻蒙的ArkUI框架,擴展了聲明式UI、狀態(tài)管理等相應(yīng)的能力,讓開發(fā)者以
    的頭像 發(fā)表于 01-24 16:44 ?1933次閱讀
    鴻蒙開發(fā)之<b class='flag-5'>ArkTS</b>基礎(chǔ)知識

    鴻蒙入門實戰(zhàn)-ArkTS開發(fā)

    聲明式UI基本概念 應(yīng)用界面是由一個個頁面組成,ArkTS是由ArkUI框架提供,用于以聲明式開發(fā)范式開發(fā)界面的語言。 聲明式UI構(gòu)建頁面的過程,其實是組合組件的過程,聲明式UI的思想,主要體現(xiàn)在
    發(fā)表于 01-16 17:27

    如何通俗易懂理解射頻微波

    在低頻的電振蕩中,磁電之間的相互變化比較緩慢,其能量幾乎全部返回原電路而沒有能量輻射出去; 在高頻率的電振蕩中,磁電互變甚快,能量不可能全部返回原振蕩電路。
    發(fā)表于 01-02 10:57 ?757次閱讀
    如何<b class='flag-5'>通俗易懂</b>理解射頻微波

    如何通俗易懂地解釋卷積?

    在本問題 如何通俗易懂地解釋卷積?中排名第一的馬同學(xué)在中舉了一個很好的例子(下面的一些圖摘自馬同學(xué)的文章,在此表示感謝),用丟骰子說明了卷積的應(yīng)用。
    發(fā)表于 12-26 17:36 ?505次閱讀
    如何<b class='flag-5'>通俗易懂</b>地解釋卷積?

    全面解讀WiFi技術(shù),通俗易懂!

    Wi-Fi被普遍誤以為是指無線保真(Wireless Fidelity) 。但事實上, Wi-Fi- -詞沒有任何意義,也沒有全稱。它只是模仿了音頻領(lǐng)域Hi-Fi (High- -Fidelity, 高保真)的寫法。
    發(fā)表于 12-14 09:25 ?3049次閱讀
    全面解讀WiFi技術(shù),<b class='flag-5'>通俗易懂</b>!

    通俗易懂的PCB爆板原因以及玻璃轉(zhuǎn)換溫度

    【科普】通俗易懂的PCB爆板原因以及玻璃轉(zhuǎn)換溫度
    的頭像 發(fā)表于 11-24 16:01 ?921次閱讀
    <b class='flag-5'>通俗易懂</b>的PCB爆板原因以及玻璃轉(zhuǎn)換溫度