鴻蒙4.0開發筆記之DevEco Studio如何使用低代碼開發模板進行開發的詳細流程(六)

鴻蒙低代碼開發

    • 一、什么是低代碼
    • 二、如何進行鴻蒙低代碼開發
        • 1、 創建低代碼開發工程(方式壹)
        • 2、已有工程則創建Visual文件(方拾貳)
    • 三、低代碼開發界面介紹
    • 四、低代碼實現頁面跳轉
    • 五、低代碼開發建議

一、什么是低代碼

所謂低代碼開發,即無需編碼或只需少量代碼就可以快速生成應用程序。也就是說,企業的應用開發通過“拖拉拽”的方式即可完成的一種開發方式。

相信這種方式對使用過Android Studio進行安卓APP開發的程序員來說都不陌生,就是通過拖動創建組件,從而完成項目框架的搭建。在HarmonyOS中,也支持使用這種可視化拖拽的方式進行開發。

二、如何進行鴻蒙低代碼開發

1、 創建低代碼開發工程(方式壹)

這種方式簡單粗暴,就是直接創建一個支持低代碼開發的新工程,從而進行應用或服務UI界面的開發。注意:該開發能力在DevEco Studio 3.0 Beta2及更高版本中支持,且compileSdkVersion必須為7或以上。

在工程模板中,提供了低代碼開發的工程模塊,您可以直接選擇一個支持低代碼開發的工程模板來開發應用或服務的UI界面,當前支持“Empty Ability”和“Sport and Health Ability”兩個工程模板,支持的設備類型包括Phone、Tablet和Wearable。

(1)打開DevEco Studio,創建一個新工程,模板選擇Empty Ability。
2.1.1
(2)選擇Super Visual,表示使用低代碼開發功能開發應用/服務。點擊Finish等待工程同步完成。
2.1.2
(3)同步完成后,查看工程目錄中自動生成低代碼目錄結構。
2.1.3
從目錄結構中可以看出,低代碼開發的項目目錄結構與純ArkTS的目錄結構大致相同,ets文件也同樣存在pages目錄下。不過低代碼開發的項目目錄最主要的特點便是index.visual文件,這就是支持項目進行可視化開發的核心。

pages > index >index.js:低代碼頁面的邏輯描述文件,定義了頁面里所用到的所有的邏輯關系,比如數據、事件等,詳情請參考JS語法參考。如果創建了多個低代碼頁面,則pages目錄下會生成多個頁面文件夾及對應的js文件

pages > index >index.visual:visual文件存儲低代碼頁面的數據模型,雙擊該文件即可打開低代碼頁面,進行可視化開發設計。如果創建了多個低代碼頁面,則pages目錄下會生成多個頁面文件夾及對應的visual文件。

(4)打開“page.visual”文件,即可進行頁面的可視化布局設計與開發。
使用低代碼開發界面過程中,如果界面需要使用到其它暫不支持可視化布局的控件時,可以在低代碼界面開發完成后,點擊img按鈕,將低代碼界面轉換為hml和css代碼。注意,代碼轉換操作會刪除visual文件及其父目錄,且為不可逆過程,代碼轉換后不能通過hml/css文件反向生成visual文件。多設備開發的場景,可以點擊界面畫布右上角設備/模式切換按鈕img,進行設備切換或模式切換。
2.1.4
如上圖所示,便是將Button按鈕組件拖入UI編輯器中,并且可以直接在按鈕上打字。

2、已有工程則創建Visual文件(方拾貳)

在已有的HarmonyOS工程中,可以通過創建JS Visual文件的方式,使用低代碼開發應用或服務的UI界面。支持的設備類型為Phone、Tablet、Wearable設備,且ompileSdkVersion必須為6或以上。
(1)在打開的DevEco工程中,選中entry > src > main > ets下的pages文件夾,單擊鼠標右鍵,選擇New > Visual > Page.
2.2.1
(2)這樣便會跳轉進入Visual界面的命名,建好Visual的頁面文件,點擊“Finish”,然后便會直接進入該Visual文件的低代碼開發界面。
2.2.2

三、低代碼開發界面介紹

3.1.1
①:項目的目錄結構,是打開文件時的主要操控面板;

②:UI Control,即UI控件欄,可以將相應的組件選中并拖動到畫布(Canvas)中,實現控件的添加。

③:Component Tree,即組件樹,在低代碼開發界面中,可以方便開發者直觀地看到組件的層級結構、摘要信息以及錯誤提示。開發者可以通過選中組件樹中的組件(畫布中對應的組件被同步選中),實現畫布內組件的快速定位;點擊組件后的img或img圖標,可以隱藏/顯示相應的組件。

④:Panel,即功能面板,包括常用的畫布縮小放大、撤銷、顯示/隱藏組件虛擬邊框、設備切換、模式切換、可視化布局界面一鍵轉換為hml和css文件等。

⑤:Canvas,即畫布,開發者可在此區域對組件進行拖拽、拉伸等可視化操作,構建UI界面布局效果。

⑥:Attributes & Styles,即屬性樣式欄,選中畫布中的相應組件后,在右側屬性樣式欄可以對該組件的屬性樣式進行配置。包括:

  • Properties:對應img圖標,用于設置組件基本標識和外觀顯示特征的屬性,如組件的ID、If等屬性。

  • General:對應img圖標,用于設置Width、Height、Background、Position、Display等常規樣式。

  • Feature:對應img圖標,用于設置組件的特有樣式,如描述Text組件文字大小的FontSize樣式等。

  • Flex:對應img圖標,用于設置Flex布局相關樣式。

  • Events:對應img圖標,為組件綁定相關事件,并設置綁定事件的回調函數。

  • Dimension:對應img圖標,用于設置Padding、Border、Margin等與盒式模型相關的樣式。

  • Grid:對應img圖標,用于設置Grid網格布局相關樣式,該圖標只有Div組件的Display樣式被設置為grid時才會出現。

  • Atom:對應img圖標,用于設置原子布局相關樣式。

⑦:Previewer,即窗口預覽器,更多關于頁面預覽的操作參見文章:鴻蒙4.0開發筆記之DevEco Studio如何使用Previewer窗口預覽器

四、低代碼實現頁面跳轉

1、實現思路
第一步:在ets文件夾下找到ets文件加上事件方法的函數
4.1.1
第二步:在Visual可視化界面給按鈕綁定事件方法
4.1.2
2、實現的ets代碼
第一個頁面:

import router from '@ohos.router'
@Entry
@Component
struct Index {@State message: string = 'Hello World'/*** In low-code mode, do not add anything to the build function, as it will be* overwritten by the content generated by the .visual file in the build phase.*/build() {}goTwo(){router.pushUrl({url:"pages/Two"})}
}

第二個頁面:

import router from '@ohos.router'
@Entry
@Component
struct Two {@State message: string = '無際鷹'/*** In low-code mode, do not add anything to the build function, as it will be* overwritten by the content generated by the .visual file in the build phase.*/build() {}backs(){router.back()}
}

3、效果
4.3.1
4.3.2

五、低代碼開發建議

HarmonyOS低代碼開發方式,具有豐富的UI界面編輯功能,通過可視化界面開發方式快速構建布局,可有效降低用戶的時間成本和提升用戶構建UI界面的效率。

建議用于項目框架的搭建,通過拖動組件,設定基本屬性樣式和基礎的動作方法。但是不建議用于一個鴻蒙項目的全流程開發,因為還有很多更為靈活的界面效果、接口接入和數據傳輸等等,都需要通過代碼來進行調整。

因此,可以用這種低代碼開發范式構建項目框架,再重點使用ArkTS語言進行編程以完成項目的開發。

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

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

相關文章

Qt+xml解析

文章目錄 一、xml文件介紹1.1 XML 文件結構和基本概念1.2 XML 文件示例二、Qt讀取xml文件2.1 Qt讀取xml 步驟2.2 基本操作和函數 QXmlStreamReader2.3 錯誤處理errorString和hasError2.4 Qt讀取xml實例三、實際項目一、xml文件介紹 1.1 XML 文件結構和基本概念 XML(可擴展標…

三、ts高級筆記,

文章目錄 18、d.ts聲明文件19、Mixin混入20、Decorator裝飾器的使用21、-高級proxy攔截_Reflect元儲存22、-高級寫法Partial-Pick23、Readonly只讀_Record套對象24、高階寫法Infer占位符25、Inter實現提取類型和倒敘遞歸26、object、Object、{}的區別27、localStorage封裝28、協…

基于 STM32F7 和神經網絡的實時人臉特征提取與匹配算法實現

本文討論了如何使用 STM32F7 和神經網絡模型來實現實時人臉特征提取與匹配算法。首先介紹了 STM32F7 的硬件和軟件特點,然后討論了人臉特征提取和匹配算法的基本原理。接下來,我們將重點討論如何在 STM32F7 上實現基于神經網絡的人臉特征提取與匹配算法&…

微機原理_3

一、單項選擇題(本大題共15小題,每小題3分,共45分。在每小題給出的四個備選項中,選出一個正確的答案,請將選定的答案填涂在答題紙的相應位置上。) 在 8086 微機系統中,完成對指令譯碼操作功能的部件是()。 A. EU B. BIU C. SRAM D. DRAM 使計算機執行某…

【機器學習】聚類(一):原型聚類:K-means聚類

文章目錄 一、實驗介紹1. 算法流程2. 算法解釋3. 算法特點4. 應用場景5. 注意事項 二、實驗環境1. 配置虛擬環境2. 庫版本介紹 三、實驗內容0. 導入必要的庫1. Kmeans類a. 構造函數b. 閔可夫斯基距離c. 初始化簇心d. K-means聚類e. 聚類結果可視化 2. 輔助函數3. 主函數a. 命令…

ElasticSearch之虛擬內存

查看當前Linux系統中vm.max_map_count變量的值,命令如下: sysctl vm.max_map_count執行結果的樣例,如下: vm.max_map_count 65530修改參數vm.max_map_count的值,命令如下: sysctl -w vm.max_map_count2…

數組題目: 665. 非遞減數列、453. 最小移動次數使數組元素相等、283. 移動零、189. 旋轉數組、396. 旋轉函數

665. 非遞減數列 題解&#xff1a; 題目要求一個非遞減數列&#xff0c;我們可以考慮需要更改的情況&#xff1a; nums {4, 2, 5} 對于這個nums&#xff0c;由于2的出現導致非遞減&#xff0c;更改的情況就是要么4調到<2&#xff0c;要么2調到4,5. nums {1, 4, 2, 5} …

人工智能-注意力機制之注意力匯聚:Nadaraya-Watson 核回歸

查詢&#xff08;自主提示&#xff09;和鍵&#xff08;非自主提示&#xff09;之間的交互形成了注意力匯聚&#xff1b; 注意力匯聚有選擇地聚合了值&#xff08;感官輸入&#xff09;以生成最終的輸出。 本節將介紹注意力匯聚的更多細節&#xff0c; 以便從宏觀上了解注意力機…

Lubuntu 23.10用戶可使用LXQt 1.4桌面

導讀在眾多 Lubuntu 用戶的要求下&#xff0c;Lubuntu 開發人員決定將 LXQt 1.4 桌面環境向后移植到最新的 Lubuntu 23.10 &#xff08;Mantic Minotaur&#xff09; 版本。 是的&#xff0c;您沒看錯&#xff0c;您現在可以使用官方的 Lubuntu Backports PPA&#xff08;個人軟…

黑馬點評筆記 分布式鎖

文章目錄 分布式鎖基本原理和實現方式對比Redis分布式鎖的實現核心思路實現分布式鎖版本一Redis分布式鎖誤刪情況說明解決Redis分布式鎖誤刪問題分布式鎖的原子性問題分布式鎖-Redission分布式鎖-redission可重入鎖原理分布式鎖-redission鎖重試和WatchDog機制分布式鎖-redissi…

01、Tensorflow實現二元手寫數字識別

01、Tensorflow實現二元手寫數字識別&#xff08;二分類問題&#xff09; 開始學習機器學習啦&#xff0c;已經把吳恩達的課全部刷完了&#xff0c;現在開始熟悉一下復現代碼。對這個手寫數字實部比較感興趣&#xff0c;作為入門的素材非常合適。 基于Tensorflow 2.10.0 1、…

pandas獲取年月第一天、最后一天,加一秒、加一天、午夜時間

Timestamp對象 # ts = pandas.Timestamp(year=2023, month=10, day=15, # hour=15, minute=5, second=50, tz="Asia/Shanghai") ts = pandas.Timestamp("2023-10-15 15:05:50", tz="Asia/Shanghai") # 2023-10-15 15:05…

數據丟失預防措施包括什么

數據丟失預防措施是保護企業或個人重要數據的重要手段。以下是一些有效的預防措施&#xff1a; 可以通過域之盾軟件來實現數據防丟失&#xff0c;具體的功能包括&#xff1a; https://www.yuzhidun.cn/https://www.yuzhidun.cn/ 1、備份數據 定期備份所有重要數據&#xff0…

unittest指南——不拼花哨,只拼實用

&#x1f4e2;專注于分享軟件測試干貨內容&#xff0c;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01;&#x1f4e2;交流討論&#xff1a;歡迎加入我們一起學習&#xff01;&#x1f4e2;資源分享&#xff1a;耗時200小時精選的「軟件測試」資…

centos7 docker開啟認證的遠程端口2376配置

docker開啟2375會存在安全漏洞 暴露了2375端口的Docker主機。因為沒有任何加密和認證過程&#xff0c;知道了主機IP以后&#xff0c;&#xff0c;任何人都可以管理這臺主機上的容器和鏡像&#xff0c;以前貪圖方便&#xff0c;只開啟了沒有認證的docker2375端口&#xff0c;后…

代碼隨想錄算法訓練營第五十三天|1143.最長公共子序列 1035.不相交的線 53. 最大子序和

文檔講解&#xff1a;代碼隨想錄 視頻講解&#xff1a;代碼隨想錄B站賬號 狀態&#xff1a;看了視頻題解和文章解析后做出來了 1143.最長公共子序列 class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:dp [[0] * (len(text2) 1) for _ i…

機器學習入門

簡介 https://huggingface.co/是一個AI社區&#xff0c;類似于github的地位。它開源了許多機器學習需要的基礎組件如&#xff1a;Transformers, Tokenizers等。 許多公司也在不斷地往上面提交新的模型和數據集&#xff0c;利用它你可以獲取以下內容&#xff1a; Datasets : 數…

hikariCP 數據庫連接池配置

springBoot 項目默認自動使用 HikariCP &#xff0c;HikariCP 的性能比 alibaba/druid快。 一、背景 系統中多少個線程在進行與數據庫有關的工作&#xff1f;其中&#xff0c;而多少個線程正在執行 SQL 語句&#xff1f;這可以讓我們評估數據庫是不是系統瓶頸。 多少個線程在…

基于法醫調查算法優化概率神經網絡PNN的分類預測 - 附代碼

基于法醫調查算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于法醫調查算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于法醫調查優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要&#xff1a;針對PNN神…

【學生成績管理】數據庫示例數據(MySQL代碼)

【學生成績管理】數據庫示例數據&#xff08;MySQL代碼&#xff09; 目錄 【學生成績管理】數據庫示例數據&#xff08;MySQL代碼&#xff09;一、創建數據庫二、創建dept&#xff08;學院&#xff09;表1、創建表結構2、添加示例數據3、查看表中數據 三、創建stu&#xff08;學…