鴻蒙前端開發-構建第一個ArkTS應用(Stage模型)

創建ArkTS工程

  1. 若首次打開DevEco Studio,請點擊Create Project創建工程。如果已經打開了一個工程,請在菜單欄選擇File?>?New?>?Create Project來創建一個新工程。

  2. 選擇Application應用開發(本文以應用開發為例,Atomic Service對應為元服務開發),選擇模板“Empty Ability”,點擊Next進行下一步配置。

  3. 進入配置工程界面,Compile SDK選擇“3.1.0(API 9) ”,Model?選擇“Stage”,其他參數保持默認設置即可。

    說明

    支持使用ArkTS低代碼開發方式。

    低代碼開發方式具有豐富的UI界面編輯功能,通過可視化界面開發方式快速構建布局,可有效降低開發者的上手成本并提升開發者構建UI界面的效率。

    如需使用低代碼開發方式,請打開上圖中的Enable Super Visual開關。

  4. 點擊Finish,工具會自動生成示例代碼和相關資源,等待工程創建完成。

ArkTS工程目錄結構(Stage模型)

  • AppScope > app.json5:應用的全局配置信息。

  • entry:HarmonyOS工程模塊,編譯構建生成一個HAP包。

    • src > main > ets:用于存放ArkTS源碼。
    • src > main > ets > entryability:應用/服務的入口。
    • src > main > ets > pages:應用/服務包含的頁面。
    • src > main > resources:用于存放應用/服務所用到的資源文件,如圖形、多媒體、字符串、布局文件等。關于資源文件,詳見資源分類與訪問。
    • src > main > module.json5:Stage模型模塊配置文件。主要包含HAP包的配置信息、應用/服務在具體設備上的配置信息以及應用/服務的全局配置信息。具體的配置文件說明,詳見module.json5配置文件。
    • build-profile.json5:當前的模塊信息、編譯信息配置項,包括buildOption、targets配置等。其中targets中可配置當前運行環境,默認為HarmonyOS。
    • hvigorfile.ts:模塊級編譯構建任務腳本,開發者可以自定義相關任務和代碼實現。
  • oh_modules:用于存放三方庫依賴信息。關于原npm工程適配ohpm操作,請參考歷史工程遷移。

  • build-profile.json5:應用級配置信息,包括簽名、產品配置等。

  • hvigorfile.ts:應用級編譯構建任務腳本。

構建第一個頁面

  1. 使用文本組件。

    工程同步完成后,在“Project”窗口,點擊“entry > src > main > ets > pages”,打開“Index.ets”文件,可以看到頁面由Text組件組成。“Index.ets”文件的示例如下:

// Index.ets
@Entry
@Component
struct Index {
@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%')}.height('100%')
}
}
  1. 添加按鈕。

    在默認頁面基礎上,我們添加一個Button組件,作為按鈕響應用戶點擊,從而實現跳轉到另一個頁面。“Index.ets”文件的示例如下:

 // Index.ets
@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)// 添加按鈕,以響應用戶點擊Button() {Text('Next').fontSize(30).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).backgroundColor('#0D9FFB').width('40%').height('5%')}.width('100%')}.height('100%')}
}
  1. 在編輯窗口右上角的側邊工具欄,點擊Previewer,打開預覽器。第一個頁面效果如下圖所示:

構建第二個頁面

  1. 創建第二個頁面。

    • 新建第二個頁面文件。在“Project”窗口,打開“entry > src > main > ets ”,右鍵點擊“pages”文件夾,選擇“New > ArkTS File”,命名為“Second”,點擊“Finish”。可以看到文件目錄結構如下:

      說明

      開發者也可以在右鍵點擊“pages”文件夾時,選擇“New > Page”,則無需手動配置相關頁面路由。

    • 配置第二個頁面的路由。在“Project”窗口,打開“entry > src > main > resources > base > profile”,在main_pages.json文件中的“src”下配置第二個頁面的路由“pages/Second”。示例如下:

       {  "src": [    "pages/Index",    "pages/Second"  ]}
  1. 添加文本及按鈕。

    參照第一個頁面,在第二個頁面添加Text組件、Button組件等,并設置其樣式。“Second.ets”文件的示例如下:

// Second.ets
@Entry
@Component
struct Second {@State message: string = 'Hi there'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button() {Text('Back').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).backgroundColor('#0D9FFB').width('40%').height('5%')}.width('100%')}.height('100%')}
}    

實現頁面間的跳轉

頁面間的導航可以通過頁面路由router來實現。頁面路由router根據頁面url找到目標頁面,從而實現跳轉。使用頁面路由請導入router模塊。

  1. 第一個頁面跳轉到第二個頁面。

    在第一個頁面中,跳轉按鈕綁定onClick事件,點擊按鈕時跳轉到第二頁。“Index.ets”文件的示例如下:

 // Index.ets
// 導入頁面路由模塊
import router from '@ohos.router';@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)// 添加按鈕,以響應用戶點擊Button() {Text('Next').fontSize(30).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).backgroundColor('#0D9FFB').width('40%').height('5%')// 跳轉按鈕綁定onClick事件,點擊時跳轉到第二頁.onClick(() => {console.info(`Succeeded in clicking the 'Next' button.`)// 跳轉到第二頁router.pushUrl({ url: 'pages/Second' }).then(() => {console.info('Succeeded in jumping to the second page.')}).catch((err) => {console.error(`Failed to jump to the second page.Code is ${err.code}, message is ${err.message}`)})})}.width('100%')}.height('100%')}
}
  1. 第二個頁面返回到第一個頁面。

    在第二個頁面中,返回按鈕綁定onClick事件,點擊按鈕時返回到第一頁。“Second.ets”文件的示例如下:

// Second.ets
// 導入頁面路由模塊
import router from '@ohos.router';@Entry
@Component
struct Second {@State message: string = 'Hi there'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button() {Text('Back').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).backgroundColor('#0D9FFB').width('40%').height('5%')// 返回按鈕綁定onClick事件,點擊按鈕時返回到第一頁.onClick(() => {console.info(`Succeeded in clicking the 'Back' button.`)try {// 返回第一頁router.back()console.info('Succeeded in returning to the first page.')} catch (err) {console.error(`Failed to return to the first page.Code is ${err.code}, message is ${err.message}`)}})}.width('100%')}.height('100%')}
}
  1. 打開“Index.ets”文件,點擊預覽器中的按鈕進行刷新。效果如下圖所示:

使用真機運行應用

運行HarmonyOS應用可以使用遠程模擬器和物理真機設備,區別在于使用遠程模擬器運行應用不需要對應用進行簽名。接下來將以物理真機設備為例,介紹HarmonyOS應用的運行方法,關于模擬器的使用請參考使用Remote Emulator運行應用/服務。

  1. 將搭載HarmonyOS系統的真機與電腦連接。具體指導及要求,可查看使用本地真機運行應用/服務。

  2. 點擊File?>?Project Structure… ?>?Project?>?SigningConfigs界面勾選“Support HarmonyOS”和“Automatically generate signature”,點擊界面提示的“Sign In”,使用華為帳號登錄。等待自動簽名完成后,點擊“OK”即可。如下圖所示:

  3. 在編輯窗口右上角的工具欄,點擊按鈕運行。效果如下圖所示:

恭喜您已經使用ArkTS語言開發(Stage模型)完成了第一個HarmonyOS應用,快來探索更多的HarmonyOS功能吧。

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

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

相關文章

docker-compose安裝教程

1.確認docker-compose是否安裝 docker-compose -v如上圖所示表示未安裝,需要安裝。 如上圖所示表示已經安裝,不需要再安裝,如果覺得版本低想升級,也可以繼續安裝。 2.離線安裝 下載docker-compose安裝包,上傳到服務…

uniapp小程序分享為灰色

引用:https://www.cnblogs.com/panwudi/p/17074172.html uniapp開發的微信小程序,沒有轉發,分享: 創建一個mixin:common/share.js export default {onShareAppMessage(res) { //發送給朋友return {}},onShareTimeline(res) {//…

人工智能原理復習--機器學習

文章目錄 上一篇機器學習概述歸納(示例)學習ID3決策樹算法K近鄰算法下一篇 上一篇 人工智能原理復習–搜索策略(二) 機器學習概述 學習系統的基本結構: #mermaid-svg-JMjIZHjVOirLolvu {font-family:"trebuchet ms",verdana,ari…

辨析旅行商問題(TSP)與車輛路徑問題(VRP)

目錄 前言旅行商問題 (TSP)問題介紹數學模型符號定義問題輸入約束條件目標函數問題輸出 解的空間解空間大小計算解釋 車輛路徑問題 (VRP)問題介紹TSP到VRP的過渡數學模型符號定義問題輸入約束條件優化目標問題輸出 解空間特殊情況一般情況 TSP 與 VRP 對比 前言 計劃是通過本文…

基于JavaWeb+SSM+Vue助農扶貧微信小程序系統的設計和實現

基于JavaWebSSMVue助農扶貧微信小程序系統的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖 源碼獲取入口 Lun文目錄 目 錄 第一章 緒論 1 1.1 研究背景 1 1.2 研究意義 1 1.3 研究內容 2 第二章 開發環境與技術 3 2.1 JSP技術 3 2.2 MySQL數據庫 3 2.3 Java…

基于Solr的全文檢索系統的實現與應用

文章目錄 一、概念1、什么是Solr2、與Lucene的比較區別1)Lucene2)Solr 二、Solr的安裝與配置1、Solr的下載2、Solr的文件夾結構3、運行環境4、Solr整合tomcat1)Solr Home與SolrCore2)整合步驟 5、Solr管理后臺1)Dashbo…

4-Docker命令之docker commit

1.docker commit介紹 docker commit命令是用于根據docker容器的改變創建一個新的docker鏡像 2.docker commit用法 docker commit [參數] container [repository[:tag]] [rootcentos79 ~]# docker commit --helpUsage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG…

微服務學習:Nacos配置中心

先打開Nacos(詳見微服務學習:Nacos微服務架構中的服務注冊、服務發現和動態配置&Nacos下載) 1.環境隔離: 新建命名空間: 記住命名空間ID: c82496fb-237f-47f7-91ed-288a53a63324 再配置 就可達成環…

vue3 創建過程中 運行npm create vue@latest 和 npm install卡住不動的解決方法之一

問題:npm create vuelatest、和npm install 不管是電腦cmd上還是vscode終端上都是卡很久或不動! 解決: 1、查看npm代理 npm config get registry2、更換npm鏡像 npm config set registryhttps://registry.npmmirror.com這里換成淘寶源好像…

學習 Vue 3 源碼

Vue 3 是一款流行的前端框架,它的數據代理和虛擬 DOM 實現是其核心功能之一 Vue 3 的數據代理 在 Vue 3 中,數據代理是指將組件實例的屬性代理到其內部狀態對象上。這使得開發者可以使用更便捷的方式來訪問和修改組件的狀態。 Vue 3 的數據代理實現主…

docker-centos中基于keepalived+niginx模擬主從熱備完整過程

文章目錄 一、環境準備二、主機1、環境搭建1.1 鏡像拉取1.2 創建網橋1.3 啟動容器1.4 配置鏡像源1.5 下載工具包1.6 下載keepalived1.7 下載nginx 2、配置2.1 配置keepalived2.2 配置nginx2.2.1 查看nginx.conf2.2.2 修改index.html 3、啟動3.1 啟動nginx3.2 啟動keepalived 4、…

【HarmonyOS開發】控件開發過程中,知識點記錄

1、問題記錄及解決方案 1.1 資源(Icon&i18n)問題 控件:只有一個JS文件,不會將任何資源型文件(圖片、字體、默認文字等)打包到SO中。因此,當我們開發控件時,需要將需要使用到的資…

【機器學習】042_遷移學習

一、概述、定義 目的: 遷移學習的目的是將某個領域或任務上學習到的模式、知識應用到不同但相關的領域里,獲取更多數據,而不必投入許多時間人力來進行數據的標注。 舉例: 已經會下中國象棋,就可以類比著來學習國際…

Java單元測試:JUnit和Mockito的使用指南

引言: 在軟件開發過程中,單元測試是一項非常重要的工作。通過單元測試,我們可以驗證代碼的正確性、穩定性和可維護性,幫助我們提高代碼質量和開發效率。本文將介紹Java中兩個常用的單元測試框架:JUnit和Mockito&#x…

Navicat連接Oracle數據庫

Navicat連接Oracle數據庫 打開服務里面找到Oracle服務 OracleServerXE或者OracleServerTTL 創建數據庫連接 連接名默認自己起 主機選擇本地 端口默認 服務名在服務中可以找到輸入后綴 用戶名默認都是system 密碼是創建oracle時候填寫的口令 點擊測試連接即可

Spring Boot中的事務是如何實現的?懂嗎?

SpringBoot中的事務管理,用得好,能確保數據的一致性和完整性;用得不好,可能會給性能帶來不小的影響哦。 基本使用 在SpringBoot中,事務的使用非常簡潔。首先,得感謝Spring框架提供的Transactional注解&am…

【金融數據分析】計算滬深300指數行業權重分布并用餅圖展示

前言 前面的文章我們已經介紹了如何獲取滬深300成分股所述行業以及權重的數據,想要了解這部分內容的小伙伴可以閱讀上一篇文章 springbootjdbcTemplatesqlite編程示例——以滬深300成分股數據處理為例-CSDN博客 那么有了上文獲取的數據,我們實際上可以…

【rabbitMQ】rabbitMQ控制臺模擬收發消息

目錄 1.新建隊列 2.交換機綁定隊列 3.查看消息是否到達隊列 總結: 1.新建隊列 2.交換機綁定隊列 點擊amq.fonout 3.查看消息是否到達隊列 總結: 生產者(publisher)發送消息,先到達交換機,再到隊列&…

微信小程序uni-app:常用Form表單組件使用示例

目錄 input 輸入框picker 選擇器 input 輸入框 https://developers.weixin.qq.com/miniprogram/dev/component/input.htmlhttps://uniapp.dcloud.net.cn/component/input.html <inputclass"input-class"type"text"v-model"value"placeholde…

Linux下文本三劍客:grep、awk、sed之對比

一、grep 主要用于搜索某些字符串&#xff1b;sed、awk 用于處理文本&#xff1a; grep基本是以行為單位處理文本的&#xff1b; 而awk可以做更細分的處理&#xff0c;通過指定分隔符將一行&#xff08;一條記錄&#xff09;劃分為多個字段&#xff0c;以字段為單位處理文本。…