鴻蒙方舟開發框架ArkUI簡介

語雀知識庫地址:語雀HarmonyOS知識庫
飛書知識庫地址:飛書HarmonyOS知識庫


嗨,各位別來無恙吶,我是小白

眾所周知,華為在今年推出了 HarmonyOS 4.0 版本,而在此之前的版本中,HarmonyOS 應用的 UI 就已經使用了自研的框架——方舟開發框架,簡稱 ArkUI

這篇文章我們就來探一探這神秘的 ArkUI 框架有什么魔力

UI 與組件

首先,方舟開發框架為HarmonyOS應用的UI開發提供了完整的基礎設施,包括簡潔的UI語法、豐富的UI功能(組件、布局、動畫以及交互事件),以及實時界面預覽工具等,可以支持開發者進行可視化界面開發

在這里我們要區分清 UI 與組件的概念,防止混淆

  • UI(User Interface),即用戶界面。作為開發者,我們可以將應用的用戶界面設計為多個功能頁面,每個頁面進行單獨的文件管理,并通過路由的方式完成頁面間的調度管理如跳轉、回退等操作
  • 組件是 UI 構建與顯示的最小單位,如 列表、網格、按鈕、單/復選框、文本等。通過不同的組件進行組合,就可以做出滿足應用訴求的界面供用戶使用

示意圖方舟開發框架

ArkUI 的兩種開發范式

由于應用的使用場景及技術背景不同,方舟開發框架提供了兩種開發范式,一種是基于 ArkTS 的聲明時開發范式,另一種是兼容 JS 的類 Web 開發范式

聲明時開發范式

采用基于 TypeScript 的聲明式語法擴展而來的 ArkTS 語言,該方式從組件、動畫與狀態管理提供 UI 繪制能力

ArkTS架構圖

類 Web 開發范式

該方式保留了經典的HML、CSS、JavaScript三段式開發方式,即使用HML標簽搭建布局、使用CSS描述樣式、使用JavaScript處理邏輯。這種開發方式更符合于 Web 前端開發者的使用習慣,便于快速將已有的Web應用改造成方舟開發框架應用
類Web式架構圖

現如今,在開發 HarmonyOS 應用時,更推薦使用聲明式開發范式來構建 UI

首先,在開發效率上,聲明式開發范式更接近于自然的開發方式,可以很直觀的描述 UI,而無需關心怎樣去繪制與渲染

其次,兩種開發范式的后端引擎和語言運行時是共用的,但是相比類 Web 開發范式,聲明式開發范式不需要 JS 框架進行頁面 DOM 管理,渲染更新鏈路更為精簡,占用內存更少,應用性能更佳

最后,聲明式開發范式會作為官方在后續主推的開發范式,可以為開發者提供更豐富、更強大的能力

當然,不同類型的 HarmonyOS 應用支持的開發范式是不同的,這里官方給出了一張差異表,如下

image.png

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

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

相關文章

2024年AI視頻識別技術的6大發展趨勢預測

隨著人工智能技術的快速發展,AI視頻識別技術也將會得到進一步的發展和應用。2023年已經進入尾聲,2024年即將來臨,那么AI視頻識別技術又將迎來怎樣的發展趨勢?本文將對2023年的AI視頻技術做一個簡單的盤點并對2024年的發展趨勢進行…

Advanced Renamer

Advanced Renamer 安裝鏈接 1.前后添加字符 2.字符轉數字,編號整體加減

oracle實驗2023-12-8--觸發器

第十四周實驗 【例】功能要求:增加一新表XS_1,表結構和表XS相同,用來存放從XS表中刪除的記錄。 分析: 1、創建表 xs_1 SQL> create table xs_1 as select * from xs; Table created SQL> truncate table xs_1; Table truncated題目&a…

StoneDB-8.0-V2.2.0 企業版正式發布!性能優化,穩定性提升,持續公測中!

? 11月,StoneDB 新版本如期而至,這一個月來我們的研發同學加班加點,持續迭代:在 2.2.0 版本中,我們針對用戶提出的需求和做出了重量級更新,修復了一些已知和用戶反饋的 Bug,同時對部分代碼進行…

PairLIE論文閱讀筆記

PairLIE論文閱讀筆記 論文為2023CVPR的Learning a Simple Low-light Image Enhancer from Paired Low-light Instances.論文鏈接如下: openaccess.thecvf.com/content/CVPR2023/papers/Fu_Learning_a_Simple_Low-Light_Image_Enhancer_From_Paired_Low-Light_Instan…

Kafka安全性探究:構建可信賴的分布式消息系統

在本文中,將研究Kafka的安全性,探討如何確保數據在傳輸和存儲過程中的完整性、機密性以及授權訪問。通過詳實的示例代碼,全面討論Kafka安全性的各個方面,從加密通信到訪問控制,幫助大家構建一個可信賴的分布式消息系統…

vue3 setup router的使用教程

vue3 setup router的使用教程 文章目錄 vue3 setup router的使用教程1. 安裝2. 使用(創建路由實例)3. 路由跳轉3.1 通過router-link標簽跳轉3.2 通過js代碼跳轉 4. 接收參數4.1 通過query接收參數4.2 通過params接收參數 5. 路由守衛5.1 全局守衛5.2 路由…

阿里云docker加速

文章目錄 一、 阿里云鏡像倉庫配置二、配置加速1. CentOS2. Mac3. Windows注意 一、 阿里云鏡像倉庫配置 1.注冊阿里云賬號,并登陸到阿里云后臺,進入控制臺面板 2.進入控制臺以后,找到左上方的三橫的功能列表按鈕,在彈出來的功能…

智能手機IC

智能手機IC 電子元器件百科 文章目錄 智能手機IC前言一、智能手機IC是什么二、智能手機IC的類別三、智能手機IC應用實例四、智能手機IC作用總結前言 智能手機IC通過相互配合和協同工作,支持智能手機的各種功能和特性,如高速計算、多媒體處理、無線通信、圖形渲染、傳感器數據…

G1 GC基本邏輯

1 MixedGC基本過程 在G1GC中,有兩種主要的垃圾回收過程:Young GC和Mixed GC。這兩者都是為了回收堆內存中的垃圾對象,但是他們關注的區域和工作方式有所不同。 Young GC: Young GC主要負責回收Young Generation(包括…

跟著GPT學設計模式之建造者模式

Builder 模式,中文翻譯為建造者模式或者構建者模式,也有人叫它生成器模式。允許你創建不同口味的對象同時避免構造器污染。當一個對象可能有幾種口味,或者一個對象的創建涉及到很多步驟時會很有用。 現實世界例子:想象一個角色扮…

Vue:用IDEA開發Vue,標簽語法爆紅問題處理

一、場景描述 我在IDEA中,學習Vue課程。 入門學習時,是在html文件中,script引入vue.js文件方式。 此時,在html文件中用v-標簽,爆紅。 二、解決辦法 打開 菜單欄 File - Settings 選擇 Editor - Files Type&#xf…

《每天一個Linux命令》 -- (5)通過sshkey密鑰登錄服務器

歡迎閱讀《每天一個Linux命令》系列!在本篇文章中,將介紹通過密鑰生成,使用公鑰連接管理服務器。 概念 SSH 密鑰是用于安全地訪問遠程服務器的一種方法。SSH 密鑰由一對密鑰組成:公鑰和私鑰。公鑰存儲在遠程服務器上,…

軟件工程復習

一、題型 單項選擇題 20分 填空題 10分 判斷題 10分 簡答題 18分 應用題 12分 綜合題 30分 軟件程序數據文檔 軟件是無形的、不可見的邏輯實體 20世紀60年代末爆發軟件危機 軟件危機是指軟件在開發與維護過程中遇到的一系列嚴重的問題 …

理解 GET、POST、PATCH 和 DELETE 請求的參數傳遞方式

理解 GET、POST、PATCH 和 DELETE 請求的參數傳遞方式 本文將向您介紹在使用 GET、POST、PATCH 和 DELETE 請求時如何傳遞參數。通過詳細解釋每種請求的參數傳遞方式和示例代碼,您將了解如何正確地將數據發送到服務器并與之交互。 GET 請求的參數傳遞方式 在 GET…

CentOS 7.9安裝寶塔面板,安裝gitlab服務器

docker安裝方式比較慢,安裝包1.3GB 安裝后啟動很慢 docker logs q18qgztxdvozdv_gitlab-ce-gitlab-1 docker ps docker exec -it q18qgztxdvozdv_gitlab-ce-gitlab-1 sh cd /etc/gitlab cat initial_root_password 軟件商店安裝方式,失敗了2023.12…

clickhouse刪除partition分區數據

clickhouse分布式表tencent_table_20231208_DIST,本地表tencent_table_20231208_local; 30臺clickhouse存儲服務器; 本地表:tencent_table_20231208_local CREATE TABLE tencent_sz.tencent_table_20231208_local (id Int64 DEFA…

hook其他調試技巧

輸出堆棧信息 通過 android.util.Log 輸出當前線程的堆棧跟蹤信息。 function showStacks() {Java.perform(function () {console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new() )); }) } 可以在需要的…

機器學習--稀疏學習

前置知識: 通常學習一次模型的過程如下:我們普遍為了獲取更好的模型效果,直接對原始數據學習,會造成過擬合、需要特征提取; 而若特征提取完后依舊有很多特征,還是會容易過擬合。這時候就需要特征降維和特…

[leetcode 前綴和]

525. 連續數組 M :::details 給定一個二進制數組 nums , 找到含有相同數量的 0 和 1 的最長連續子數組,并返回該子數組的長度。 示例 1: 輸入: nums [0,1] 輸出: 2 說明: [0, 1] 是具有相同數量 0 和 1 的最長連續子數組。示例 2: 輸入: nums [0,1,0] 輸出: …