在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項(xiàng)目講解

HarmonyOS解決方案 ? 作者:HarmonyOS解決方案 ? 2025-07-07 11:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項(xiàng)目講解

##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)#

一、前言:移動(dòng)開發(fā)聲明式 UI 框架的技術(shù)變革

在移動(dòng)操作系統(tǒng)的發(fā)展歷程中,UI 開發(fā)模式經(jīng)歷了從命令式到聲明式的重大變革。

根據(jù)華為開發(fā)者聯(lián)盟 2024 年數(shù)據(jù)報(bào)告顯示,HarmonyOS 設(shè)備激活量已突破 7.3 億臺(tái),其中采用 ArkTS 聲明式 UI 框架開發(fā)的應(yīng)用占比達(dá) 68%,較 2023 年提升 45 個(gè)百分點(diǎn)。

這標(biāo)志著以 ArkTS 為代表的聲明式開發(fā)范式,正在成為智能終端應(yīng)用開發(fā)的主流選擇。

本文將以一個(gè)典型的 ArkTS 組件代碼為例(代碼示例來(lái)自IDE示例)。

該代碼實(shí)現(xiàn)了一個(gè)基礎(chǔ)的交互界面,包含狀態(tài)管理、布局設(shè)計(jì)、事件處理等核心要素,是理解 ArkTS 組件開發(fā)的絕佳切入點(diǎn)。

二、ArkTS 組件基礎(chǔ):代碼結(jié)構(gòu)與核心裝飾器

(1)項(xiàng)目結(jié)構(gòu)梳理
image.png

圖(1-1)

如上圖所示,該項(xiàng)目整體結(jié)構(gòu)為HarmonyOS示例空Ability項(xiàng)目結(jié)構(gòu)。一個(gè)常規(guī)的鴻蒙應(yīng)用項(xiàng)目,重點(diǎn)需要關(guān)心編碼的部分,分為三個(gè):

  1. AppScope 設(shè)置應(yīng)用的包名,圖標(biāo)等相關(guān)信息
  2. entry - src - main - ets 只要編碼的所在地。entryAbility作為啟動(dòng)初始的入口,需要修改其中的啟動(dòng)頁(yè)。pages為UI界面和邏輯開發(fā)。
  3. resource 資源目錄下的圖標(biāo)目錄 media,頁(yè)面配置路由main_pages

(2)ArkTS組件聲明與入口標(biāo)記

@Entry
@Component
struct Index {
  // 組件內(nèi)部邏輯
}

1. @Entry 裝飾器:
標(biāo)記應(yīng)用的Ability啟動(dòng)加載的入門,我們可以理解為界面。所以該裝飾器修飾,都可以在Ability中加載,作為界面使用。

2. 下面為EntryAbility代碼示例,配置啟動(dòng)頁(yè):

import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';

const DOMAIN = 0x0000;

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET);

  }


  onWindowStageCreate(windowStage: window.WindowStage): void {

    // 舞臺(tái)添加啟動(dòng)頁(yè)面
    windowStage.loadContent('pages/Index', (err) = > {
      if (err.code) {
        hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err));
        return;
      }
      hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.');
    });
  }

}

3. 下面為路由配置表resource - base - profile - main_pages.json文件:

{
  "src": [
    "pages/Index"
  ]
}

當(dāng)我們使用快捷鍵,創(chuàng)建空的pages時(shí),IDE會(huì)自動(dòng)在該路由表添加信息。若是手動(dòng),一定要記得添加頁(yè)面的信息。
image.png

4. @Component 裝飾器: 代表該類是組建類,可以給其他界面和組件調(diào)用,例如:

// 這里引入
import { Index } from './Index'

@Entry
@Component
struct APage {


  build() {
    RelativeContainer() {
     // 這里使用
      Index()
    }
    .height('100%')
    .width('100%')
  }
}

5. export導(dǎo)出
但是需要注意的是,我們需要對(duì)要引入的組件類,進(jìn)行export導(dǎo)出標(biāo)記,其他類才能去導(dǎo)出。所以我們的Index類需要作如下修改:

@Entry
@Component
export struct Index {
  // 組件內(nèi)部邏輯
}

(3)build函數(shù)是做什么的呢?

1. build函數(shù)構(gòu)建概述

組件構(gòu)建函數(shù),定義UI結(jié)構(gòu)和布局,從示例代碼可以看出,build中進(jìn)行了魚鱗排版布局的編寫。這也是聲明式UI布局編寫的一大特寫,不管是Flutter還是Android的compose,都是如此。

布局通過(guò)嵌入-展開的形式,可以一目了然整個(gè)UI布局的結(jié)構(gòu)。并且通過(guò)鏈?zhǔn)秸{(diào)用,非常方便的設(shè)置UI屬性。

@Entry // 應(yīng)用入口組件標(biāo)識(shí)
@Component // 聲明為組件
export struct Index {

  // 組件構(gòu)建函數(shù),定義UI結(jié)構(gòu)和布局
  build() {
    // 創(chuàng)建一個(gè)相對(duì)容器,占滿整個(gè)父容器空間
    RelativeContainer() {
      // 顯示message狀態(tài)變量的文本組件
      Text(this.message)
        .id('HelloWorld') // 設(shè)置組件ID,用于樣式或交互引用
        .fontSize($r('app.float.page_text_font_size')) // 從資源文件獲取字體大小
        .fontWeight(FontWeight.Bold) // 設(shè)置字體加粗
        .alignRules({ // 設(shè)置文本在容器中的對(duì)齊規(guī)則
          center: { anchor: '__container__', align: VerticalAlign.Center }, // 垂直居中
          middle: { anchor: '__container__', align: HorizontalAlign.Center } // 水平居中
        })

    }
    .height('100%') // 容器高度占滿父容器
    .width('100%')  // 容器寬度占滿父容器
  }
}

2.RelativeContainer 的定位策略
HarmonyOS 提供 7 種基礎(chǔ)布局容器,RelativeContainer(相對(duì)布局)適用于元素需相對(duì)于容器或其他元素定位的場(chǎng)景。

根據(jù)華為 UX 設(shè)計(jì)規(guī)范,在屏幕適配場(chǎng)景中,相對(duì)布局的設(shè)備兼容性比絕對(duì)布局高 40%,尤其適合折疊屏等多形態(tài)設(shè)備。

.alignRules({
  center: { anchor: '__container__', align: VerticalAlign.Center },
  middle: { anchor: '__container__', align: HorizontalAlign.Center }
})

錨點(diǎn)系統(tǒng):
__container__表示相對(duì)于父容器定位,支持自定義錨點(diǎn)(如子組件 ID)。華為布局引擎數(shù)據(jù)顯示,合理使用錨點(diǎn)可減少 20% 的布局計(jì)算時(shí)間,避免遞歸定位導(dǎo)致的性能瓶頸。?

對(duì)齊策略:
VerticalAlign.Center(垂直居中)與 HorizontalAlign.Center(水平居中)組合使用,實(shí)現(xiàn)文本組件的屏幕中心定位。該策略在不同分辨率設(shè)備上的定位誤差小于 1px(基于 1920x1080 到 4K 分辨率的測(cè)試數(shù)據(jù))。

(4)數(shù)據(jù)交互與事件交互
1. 響應(yīng)式狀態(tài)管理:@State 裝飾器

@State message: string = 'Hello World';

@State 修飾的變量會(huì)被框架自動(dòng)追蹤,當(dāng)變量值發(fā)生變化時(shí),系統(tǒng)會(huì)智能識(shí)別受影響的 UI 元素并觸發(fā)局部重繪。與傳統(tǒng)命令式 UI 更新(如 Android 的 findViewById+setText)相比,聲明式更新減少了 60% 的 DOM 操作量(基于 Chromium 內(nèi)核性能測(cè)試數(shù)據(jù))。

2. 綁定點(diǎn)擊事件:
通過(guò)在點(diǎn)擊事件中,處理message變量的賦值。ArkUI框架自動(dòng)處理數(shù)值變化后,使用了該數(shù)值的UI進(jìn)行重新渲染刷新。

.onClick(() = > {
  this.message = 'Welcome';
})
// 顯示message狀態(tài)變量的文本組件
      Text(this.message)

(5)資源文件的管理

.fontSize($r('app.float.page_text_font_size'))

$r () 函數(shù):
從資源文件(resources/base/element/string.json 等)動(dòng)態(tài)獲取字體大小,支持多語(yǔ)言、多設(shè)備適配。華為開發(fā)者平臺(tái)數(shù)據(jù)顯示,使用資源文件管理樣式可使應(yīng)用包體積減少 15%,避免硬編碼導(dǎo)致的維護(hù)成本。?

類型安全:
DevEco Studio 提供資源引用智能提示,減少 70% 的資源路徑拼寫錯(cuò)誤(基于千次開發(fā)測(cè)試數(shù)據(jù))。

三、示例項(xiàng)目源碼與詳細(xì)注釋

Index.page

@Entry // 應(yīng)用入口組件標(biāo)識(shí)
@Component // 聲明為組件
export struct Index {
  // 響應(yīng)式狀態(tài)變量,用于存儲(chǔ)顯示的文本內(nèi)容
  @State message: string = 'Hello World';

  // 組件構(gòu)建函數(shù),定義UI結(jié)構(gòu)和布局
  build() {
    // 創(chuàng)建一個(gè)相對(duì)容器,占滿整個(gè)父容器空間
    RelativeContainer() {
      // 顯示message狀態(tài)變量的文本組件
      Text(this.message)
        .id('HelloWorld') // 設(shè)置組件ID,用于樣式或交互引用
        .fontSize($r('app.float.page_text_font_size')) // 從資源文件獲取字體大小
        .fontWeight(FontWeight.Bold) // 設(shè)置字體加粗
        .alignRules({ // 設(shè)置文本在容器中的對(duì)齊規(guī)則
          center: { anchor: '__container__', align: VerticalAlign.Center }, // 垂直居中
          middle: { anchor: '__container__', align: HorizontalAlign.Center } // 水平居中
        })
        .onClick(() = > { // 點(diǎn)擊事件處理
          this.message = 'Welcome'; // 點(diǎn)擊后更新狀態(tài)變量,觸發(fā)UI刷新
        })
    }
    .height('100%') // 容器高度占滿父容器
    .width('100%')  // 容器寬度占滿父容器
  }
}

APage.ets

import { Index } from './Index'

@Entry
@Component
struct APage {


  build() {
    RelativeContainer() {
      Index()
    }
    .height('100%')
    .width('100%')
  }
}

審核編輯 黃宇

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

    關(guān)注

    59

    文章

    2595

    瀏覽量

    43980
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2118

    瀏覽量

    32804
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    免費(fèi)學(xué)習(xí)鴻蒙HarmonyOS)開發(fā),一些地址分享

    HarmonyOS萬(wàn)物互聯(lián),從華為一系列的操作來(lái)看已經(jīng)與iOS、Android形成三足鼎立之勢(shì)了。 根據(jù)《澎湃新聞》的報(bào)道,已有23所985高校和46所211高校加入了鴻蒙班的行列,合計(jì)達(dá)到了69所
    發(fā)表于 01-12 20:48

    2024款鴻蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    Next_HarmonyOS4.0系列教程由業(yè)內(nèi)大神錄制于2024年,包括:HarmonyOS ArkTs、ArkUI、ArkTs Api、ArkTs Native、OpenHarmony ArkUI-X跨平臺(tái)的基本用法以及
    發(fā)表于 02-28 10:29

    HarmonyOS 應(yīng)用開發(fā)賦能套件:鴻蒙原生應(yīng)用開發(fā)的 “神助攻”

    隨著鴻蒙生態(tài)的快速發(fā)展,越來(lái)越多的開發(fā)者投身于鴻蒙原生應(yīng)用的開發(fā)中。然而,在學(xué)習(xí)鴻蒙原生應(yīng)用開發(fā)時(shí),許多開發(fā)者仍面臨一系列問(wèn)題,如不清楚如何快速入門
    發(fā)表于 02-17 16:37

    HarmonyOS HiSpark Wi-Fi IoT HarmonyOS 智能家居套件試用 】鴻蒙系統(tǒng)無(wú)人機(jī)控制系統(tǒng)

    項(xiàng)目名稱:鴻蒙系統(tǒng)無(wú)人機(jī)控制系統(tǒng)試用計(jì)劃:申請(qǐng)理由本人在無(wú)人機(jī)領(lǐng)域有五年多的學(xué)習(xí)和開發(fā)經(jīng)驗(yàn),曾設(shè)計(jì)過(guò)多款無(wú)人機(jī)硬件電路以及軟件開發(fā)。想借助發(fā)燒友論壇和HarmonyOS系統(tǒng)完善該項(xiàng)目
    發(fā)表于 09-25 10:06

    【每日精選】鴻蒙大咖HarmonyOS開發(fā)資料合集

    分享一些嵌入式的學(xué)習(xí)、工作經(jīng)驗(yàn)。2.韋東山老師OpenHarmony內(nèi)核在第三方開發(fā)板上的移植簡(jiǎn)介:韋東山老師就鴻蒙內(nèi)核移植進(jìn)行講解,比如:一個(gè)完整的嵌入式系統(tǒng)都有什么?操作系統(tǒng)怎么“同時(shí)運(yùn)行”多個(gè)任務(wù)
    發(fā)表于 10-28 18:43

    HarmonyOS HiSpark AI Camera】鴻蒙系統(tǒng)上的目標(biāo)檢測(cè)項(xiàng)目

    ,對(duì)HarmonyOS快速入門②通過(guò)學(xué)習(xí)HarmonyOS的軟件和系統(tǒng),了解實(shí)際應(yīng)用案例,熟悉開發(fā)過(guò)程③移植YOLOv5,做目標(biāo)檢測(cè)類項(xiàng)目
    發(fā)表于 11-19 20:47

    HarmonyOS學(xué)習(xí)系列文章匯總

    HarmonyOS學(xué)習(xí)系列文章總目錄,大家趕緊收藏起來(lái)吧!1.HarmonyOS學(xué)習(xí)之一:HarmonyOS系統(tǒng)簡(jiǎn)介簡(jiǎn)介:鴻蒙系統(tǒng)優(yōu)點(diǎn)是流暢
    發(fā)表于 11-27 10:04

    HarmonyOS 開發(fā)資料大合集

    領(lǐng)1次)HarmonyOS入門大神系列HarmonyOS入門到大神資料下載合集(上)HarmonyO
    發(fā)表于 07-29 16:25

    HarmonyOS資料下載專題

    HarmonyOS資料下載專題:從鴻蒙出世到現(xiàn)在,對(duì)于鴻蒙資料查詢下載,大家是否有點(diǎn)迷茫-不知去何處查找。為此,本專題匯集了HarmonyOS入門
    發(fā)表于 10-08 14:23
    <b class='flag-5'>HarmonyOS</b>資料下載專題

    鴻蒙系統(tǒng)HarmonyOS入門文檔

    、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設(shè)備?,F(xiàn)在為大家整理了HarmonyOS入門資料,方便大家開發(fā)設(shè)計(jì)。
    發(fā)表于 10-14 11:13 ?0次下載
    <b class='flag-5'>鴻蒙</b>系統(tǒng)<b class='flag-5'>HarmonyOS</b><b class='flag-5'>入門</b>文檔

    HarmonyOS入門文檔

    HarmonyOS入門文檔免費(fèi)下載。
    發(fā)表于 05-25 14:49 ?46次下載

    華為鴻蒙系統(tǒng)HarmonyOS升級(jí)機(jī)型

    華為鴻蒙系統(tǒng)HarmonyOS升級(jí)機(jī)型
    的頭像 發(fā)表于 06-02 21:30 ?7428次閱讀
    華為<b class='flag-5'>鴻蒙</b>系統(tǒng)<b class='flag-5'>HarmonyOS</b>升級(jí)機(jī)型

    華為開發(fā)者HarmonyOS零基礎(chǔ)入門:系統(tǒng)能力調(diào)用示例

    華為開發(fā)者HarmonyOS零基礎(chǔ)入門:系統(tǒng)能力調(diào)用示例,修改組件屬性頁(yè)面加載參數(shù)接收數(shù)據(jù)連接,優(yōu)化切換交互體驗(yàn)。
    的頭像 發(fā)表于 10-23 10:44 ?1617次閱讀
    華為開發(fā)者<b class='flag-5'>HarmonyOS</b>零基礎(chǔ)<b class='flag-5'>入門</b>:系統(tǒng)能力調(diào)用<b class='flag-5'>示例</b>

    HarmonyOS入門寶典2.0

    HarmonyOS入門寶典2.0 華為開發(fā)的鴻蒙系統(tǒng),希望以后在嵌入式開發(fā),人工智能,移動(dòng)端發(fā)揮更大的作用
    發(fā)表于 12-05 11:48 ?4次下載

    HarmonyOS入門指南

    1、文檔與教程 HarmonyOS開發(fā)文檔-應(yīng)用開發(fā)導(dǎo)讀 OpenHarmony--應(yīng)用開發(fā)導(dǎo)讀 倉(cāng)頡編程語(yǔ)言官網(wǎng) 華為開發(fā)者博客 華為開發(fā)者問(wèn)答專區(qū) 華為生態(tài)市場(chǎng)-鴻蒙生態(tài)市場(chǎng)
    的頭像 發(fā)表于 06-27 00:11 ?88次閱讀
    主站蜘蛛池模板: 天堂成人在线 | 国产h视频在线观看高清 | 天天cao在线 | 色视频免费版高清在线观看 | 国产黄色小视频网站 | 免费人成网站线观看合集 | 永久免费在线视频 | 一区二区三区伦理 | 99久久999久久久综合精品涩 | 99精品视频免费 | 亚洲综合日韩欧美一区二区三 | 三级国产在线 | 大黄香蕉| 国产性videostv另类极品 | 黄色午夜影院 | 4hu四虎永久免在线视 | 久久精品国产免费高清 | 777人体粉嫩u美图 | 亚洲成在 | 乱好看的的激情伦小说 | 天天躁日日躁成人字幕aⅴ 天天躁夜夜躁 | 午夜激情网站 | 深夜偷偷看视频在线观看 | 59日本人xxxxxxxxx69 | 国产伦子系列视频6 | 免费人成网址在线观看国内 | 国产成人精品曰本亚洲 | 日本一级高清不卡视频在线 | 日韩免费精品一级毛片 | 午夜国产福利在线 | 黄黄网 | 午夜宅男视频 | 黄色网址播放 | 精品亚洲午夜久久久久 | 亚洲精品色一区色二区色三区 | 啊用力太猛了啊好深视频免费 | 男操女免费视频 | 欧美男人的天堂 | 精品国产自在现线看久久 | 国产精品欧美一区二区三区不卡 | 拍拍拍无挡视频免费全程1000 |