ArkTS快速入門

一、概述

????????ArkTS是鴻蒙生態的應用開發語言。它在保持TypeScript(簡稱TS)基本語法風格的基礎上,對TS的動態類型特性施加更嚴格的約束,引入靜態類型。同時,提供了聲明式UI、狀態管理等相應的能力,讓開發者可以以更簡潔、更自然的方式開發高性能應用。

? ? ? ? 簡而言之,ArkTS是華為官方推薦的HarmonyOS開發的主力語言,它是華為自己開發的語言。由于HarmonyOS3.0之后就不再支持Java開發了,因此我們要在鴻蒙系統上開發app,就需要學習這門語言。

特點

  • 開發效率高,體驗好

????????ArkTS專注于移動端的開發,雖然傳統的前端網頁開發也同樣可以實現,不過學過web前端的都知道,一個網頁的實現需要同時使用HTML,JavaScript,CSS這三種不同語言,它們語法完全不同,開發體驗并不良好。不過使用ArkTS開發移動端的話就沒有這個問題了,僅僅這一種語言,一種語法,開發起來就比較舒服了。

比如這個,實現一個點擊自增按鈕,ArkTS所操作方式的完全就是 .屬性(賦值)? 進行操縱。這對于習慣使用Java開發的人來說可以說是非常舒服了。

  • 性能上并沒有下降,執行性能非常高效

  • 而且還有多系統適配,接入能力

開發工具

DevEco Studio:HUAWEI DevEco Studio和SDK下載和升級 | HarmonyOS開發者

注意它需要node.js環境,版本最低不能低于14.19.1,最高不能高于17.0.0。

使用NVM實現多版本Node.js的版本共存和無縫切換_nodejs多版本共存-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_56308072/article/details/130894356?spm=1001.2014.3001.5501

這樣檢測的時候沒有報錯就可以使用了,又報錯直接點擊后面的安裝即可。


二、TypeScript基本語法

ArkTS是基于TypeScipt開發的,其語法也是十分的相似。因此我們需要先了解TypeScipt的基本語法,方便ArkTS的學習。

目錄

  1. 變量聲明
  2. 條件控制
  3. 循環迭代
  4. 函數
  5. 類和接口
  6. 模塊開發

1、變量聲明

TypeScript在JavaScript的基礎上加入了靜態的類型檢查功能,因此與JavaScrpt那極其自由的語法不同,每一個變量都有固定的數據類型。

JS的語法:let msg = 'hello world'

TS的語法:let msg:string = 'hello world'

其實就是在JS的基礎上多了一步聲明數據類型。

?想要編寫一下代碼對語法進行練習和熟悉,可以使用TypeScript官方網站上的在線編寫:TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript

直接在這里練習就行了。

2、 條件控制

TypeScript與大多數開發語言類似,支持基于if-else和switch的條件控制

===是JavaScript中的一個特殊運算符,它會嚴格要求兩個比較的數據的數據類型,TypeScript將其繼承了下來。

因為在JavaScript是一門弱類型語言,它不強調數據的類型,"字符串'21' == 整型21"?始終為true,所有有了===這個運算符比較一下數據類型。

其次還有一個需要注意的一點是

在TypeScript中,空字符串、0、null、undefined都被認為是false。

因此你可以直接將一個變量作為一個判斷的標準,這點與C++很相似。

3、循環迭代

TypeScript支持for和while循環,并且為一些內置類型如Array等提供了快捷迭代的語法

?相信有編程基礎的大家都快把循環語句寫爛了。

4、函數

TypeScript通常利用function關鍵字聲明函數,并且支持可選參數,默認參數,箭頭函數等特殊語法

可選參數就是直接在參數后面加上 ? 默認參數就是直接在參數中賦值,注意此時如果有參數傳遞時就用傳遞來的參數,沒有參數傳入時默認參數才會生效?

5、類和接口

TypeScript具備面向對象編程的基本語法,例如interface,class,enum等。也具備封裝、繼承、多態等面向對象基本特征

吐槽:好像Java和JS雜交之后出來的產物。我們再來看一個既視感很強的例子

?

6、模塊開發

應用復雜時,我們可以把通用功能抽取到單獨的ts文件中,每個文件都是一個模塊(module)。模塊可以相互加載,提高代碼復用性

?


三、ArkTS快速入門

項目創建

創建一個空項目

簡單解釋一下其中的配置項:

  • Project name是開發者可以自行設置的項目名稱,這里根據自己選擇修改為自己項目名稱。
  • Bundle name是包名稱,默認情況下應用ID也會使用該名稱,應用發布時對應的ID需要保持一致。
  • Save location為工程保存路徑,建議用戶自行設置相應位置。
  • Compile SDK是編譯的API版本,這里默認選擇API9。
  • Model選擇Stage模型,其他保持默認即可。

吐槽:怎么跟IDEA長得這么像

目錄結構?

左邊的目錄大多是配置文件,用到的時候再講,現在先將其切換為Ohos,IDE會自動將目錄按照類型分類

  • AppScope:主要用于存放整個應用公共的信息與資源
  • entry:入口,初始模塊。用于存放編寫的代碼文件
    • configuration:存放相應模塊的配置文件
    • resource對應模塊內的公共資源
    • entryability:存放ability文件,用于當前ability應用邏輯和生命周期管理。
    • pages:存放UI界面相關代碼文件,初始會生成一個Index頁面。
  • 最外層的configuration:則是存放工程應用級的配置文件

既然是鴻蒙移動端開發,那么就需要一個鴻蒙系統的手機。不過我們不需要真的去購買一臺手機,IDE中有自帶的模擬器。

點擊右側的Previewer,即可看到index.ets文件的效果(ArkTS寫的文件后綴統一叫.ets)?

index.ets代碼解釋

邏輯清晰了之后,我們可以嘗試使用官方的ArkUI直接拼接一個頁面出來(這里僅展示一下,后面會具體學習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%')}
}

?最終效果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208138.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208138.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208138.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習基礎回顧

深度學習基礎 淺層網絡 VS 深層網絡深度學習常用的激活函數Sigmoid 函數ReLU 函數Softplus 函數tanh函數 歸納偏置CNN適用數據歸納偏置 RNN適用數據歸納偏置 淺層網絡 VS 深層網絡 淺層神經網絡參數過多,導致模型的復雜度和計算量很高,難以訓練。而深層…

Redisson的基礎使用(2)

布隆過濾器(Bloom Filter) 布隆過濾器一般用于解決緩存穿透的問題。主要原理是使用一組哈希函數,將元素映射成一組位數組中的索引位置。如果要檢查某個元素是否在集合中時,將此元素通過所有的哈希函數,查看哈希值對應的…

硬件開發筆記(十五):RK3568底板電路VGA顯示接口原理圖分析

若該文為原創文章,轉載請注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134849296 紅胖子網絡科技博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬…

多態和繼承復習

與其明天開始,不如現在行動! 文章目錄 多態多態成立的條件細節 繼承💎總結 多態 多態成立的條件 存在繼承關系或者實現關系子類重寫父類的方法父類引用指向子類對象 細節 通過父類的引用調用子類的對象 Animal animal new Dog();animal…

C語言搭建項目-學生管理系統(非鏈表)

、 目錄 搭建offer.h文件 搭建offer.c中的main函數 密碼登入系統 搭建my_oferr.c中的接口函數 使用幫助菜單接口函數 增加學生信息接口函數 查詢學生信息接口函數 刪除學生信息接口函數 保存學生信息接口 打開文件fopen 關閉文件fclose 判斷是否保存文件fwrite 退出執行文件…

C++:const類型數據的修改問題

在C語言中const類型的數據嚴格意義上可以修改: const int a1; int*b&a; *b2;不同于C語言,C中指針類型是要嚴格對應的,對const類型的數據必須使用const類型的指針進行接收,從而避免修改; 但問題是c中同樣支持指針的…

年度工作總結怎么寫?掌握這些年終總結萬能公式,讓你的報告出彩無比!

光陰似箭,日月如梭,時間總是不疾不徐地向前奔去,轉眼就來到了2023年的最后一個月,12月一到,上班族和打工人又要開始忙活工作總結的事情~ 工作總結,不僅是一年工作的回顧,更是未來規劃的起點。你…

Springboot中的RestTemplate

Springboot中的RestTemplate 在Spring Boot應用程序中,RestTemplate是一個用于進行HTTP請求的強大工具。通常用于與RESTful API進行交互、調用其他服務或執行HTTP請求。它提供了各種方法來發送HTTP請求(如GET、POST、PUT、DELETE等)&#xf…

cuda lib 線程安全的要義

1, 概述 cuda lib 線程安全的幾個多線程的情景: 單卡多線程; 多卡多線程-每卡單線程; 多卡多線程-每卡多線程; 需要考慮的問題: 每個 cublasHandle_t 只能有一個stream么? 每個cusolverHandle_t 只能有一…

python3.5安裝教程及環境配置,python3.7.2安裝與配置

大家好,小編來為大家解答以下問題,python3.5安裝教程及環境配置,python3.7.2安裝與配置,現在讓我們一起來看看吧! python 從爬蟲開始(一) Python 簡介 首先簡介一下Python和爬蟲的關系與概念&am…

Android Studio的代碼筆記--IntentService學習

IntentService學習 IntentService常規用法清單注冊服務服務內容開啟服務 IntentService 一個 HandlerThread工作線程,通過Handler實現把消息加入消息隊列中等待執行,通過傳遞的intent在onHandleIntent中處理任務。(多次調用會按順序執行事件…

Spring Cloud Alibaba實踐 --Sentinel

sentinel簡介 Sentinel的官方標題是:分布式系統的流量防衛兵。從名字上來看,很容易就能猜到它是用來作服務穩定性保障的。對于服務穩定性保障組件,如果熟悉Spring Cloud的用戶,第一反應應該就是Hystrix。但是比較可惜的是Netflix…

三防平板|手持終端PDA|8寸/10寸工業三防平板電腦主板方案定制

近年來,隨著科技的快速發展,三防平板成為了各行各業中不可或缺的工具。三防平板采用IP67級別的防護設計,通過了多項測試標準,如國標和美標,具備防水、防摔、防塵、防撞、防震、防跌落以及防鹽霧等多重防護功能。因此&a…

JavaScript 簡單理解原型和創建實例時 new 操作符的執行操作

function Person(){// 構造函數// 當函數創建,prototype 屬性指向一個原型對象時,在默認情況下,// 這個原型對象將會獲得一個 constructor 屬性,這個屬性是一個指針,指向 prototype 所在的函數對象。 } // 為原型對象添…

HarmonyOS應用開發工具DevEco Studio安裝與使用

語雀知識庫地址:語雀HarmonyOS知識庫 飛書知識庫地址:飛書HarmonyOS知識庫 知識庫內容逐步完善中… 工欲善其事必先利其器,要編寫HarmonyOS應用就需要用到官方提供的IDE工具來編寫相應的代碼。 在鴻蒙開發者官網,其提供了官方的開…

基于Java醫院掛號管理系統

基于Java醫院掛號管理系統 功能需求 1、患者信息管理:系統需要提供患者的基本信息錄入功能,包括姓名、性別、年齡、聯系方式等。此外,系統還應支持對患者信息進行修改、查詢和刪除的操作。 2、掛號管理:系統需要提供掛號功能&a…

高效的多維空間點索引算法——GeoHash

一、Geohash 算法簡介 GeoHash是空間索引的一種方式,其基本原理是將地球理解為一個二維平面,通過把二維的空間經緯度數據編碼為一個字符串,可以把平面遞歸分解成更小的子塊,每個子塊在一定經緯度范圍內擁有相同的編碼。以GeoHash方…

springboot 極簡案例

安裝idea File -> New Project 選擇依賴 創建controller文件 輸入controller類名 輸入代碼 運行項目 訪問 localhost:8080/hello/boot package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.…

數據庫對象介紹與實踐:視圖、函數、存儲過程、觸發器和物化視圖

文章目錄 一、視圖(View)1、概念2、基本操作1)創建視圖2)修改視圖3)刪除視圖4)使用視圖 3、使用場景4、實踐 二、函數(Function)1、概念2、基本操作1)創建函數2&#xff…

粵能環保亮相迪拜COP28,智能技術鑄就運河城市可持續未來

在全球應對氣候變化的重要會議——迪拜COP28大會上,運河城市面臨的獨特環境挑戰引起了廣泛關注。隨著城市化進程的加快,運河城市在處理固體廢物、減少溫室氣體排放以及維持水資源安全方面面臨著嚴峻考驗。智能垃圾分類作為應對這些挑戰的有效途徑&#x…