精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙之HML語法參考

王程 ? 來源:jf_75796907 ? 作者:jf_75796907 ? 2024-02-20 15:53 ? 次閱讀

HML(HarmonyOS Markup Language)是一套類HTML的標記語言,通過組件,事件構建出頁面的內容。頁面具備數據綁定、事件綁定、條件渲染和邏輯控制等高級能力。

頁面結構


Image Show

數據綁定


{{content}} {{key1}} {{key2}} key1 {{key1}} {{flag1 && flag2}} {{flag1 || flag2}} {{!flag1}}

卡片hml文件中的變量需要在json文件的data字段下進行聲明:

{
  "data": {
    "content": "Hello World!",
    "key1": "Hello",
    "key2": "World",
    "flag1": true,
    "flag2": false
  }
}

說明

key值支持對象操作符和數組操作符,如{{key.value}}、{{key[0]}}。

支持字符串拼接、邏輯運算和三元表達式。

字符串拼接:

支持變量跟變量:{{key1}}{{key2}}等

支持常量跟變量: “my name is {{name}}, i am from
{{city}}.” “key1 {{key1}}”

邏輯運算:

與:{{flag1 && flag2}}(僅支持兩個boolean變量間的與邏輯運算)

或:{{flag1 || flag2}}
(僅支持兩個boolean變量間的或邏輯運算)

非:{{!flag1}} (僅支持boolean變量的非邏輯運算)

三元表達式

{{flag? key1:key2}}(flag為boolean變量,key1和key2可以是變量,也可以是常量)

注意事項

非boolean類型值進行bool運算默認為false

以上所有變量解析跟運算解析均不支持嵌套

事件綁定

卡片的事件需要在json文件的actions字段下進行聲明。卡片僅支持click通用事件,事件的定義只能是直接命令式,事件定義必須包含action字段,用以說明事件類型。卡片支持兩種事件類型:跳轉事件(router)和消息事件(message)。跳轉事件可以跳轉到卡片提供方的HarmonyOS應用,消息事件可以將開發者自定義信息傳遞給卡片提供方。事件參數支持變量,變量以"{{}}"修飾。跳轉事件中若定義了params字段,則在被拉起應用的onStart的intent中,可用"params"作為key將跳轉事件定義的params字段的值取到。

跳轉事件格式

通過定義ability名稱和攜帶的參數字段params直接跳轉,可用"params"作為key提取到跳轉事件定義的params字段值。

選擇器 樣例 默認值 樣例描述
action string “router” 事件類型。- “router”:用于應用跳轉。- “message”:自定義點擊事件。
abilityName string - 跳轉ability名。
params Object - 跳轉應用攜帶的額外參數。

{
  "data": {
    "mainAbility": "xxx.xxx.xxx"
  },
  "actions": {
    "routerEvent": { 
      "action": "router",
      "abilityName": "{{mainAbility}}",
      "params":{}
    } 
  }
}

消息事件格式

選擇器 樣例 默認值 樣例描述
action string message 表示事件類型。
params Object - 跳轉應用攜帶的額外參數。

{
  "actions": {
    "activeEvent": { 
      "action": "message",
      "params": {}           
    } 
  }
}

綁定路由事件和消息事件

 

列表渲染


{{$item.name}}

{{value.name}}

{{value.name}}

{
  "data": {
    "array": [
      {"id": 1, "name": "jack", "age": 18},
      {"id": 2, "name": "tony", "age": 18}
    ]
  }
}

tid屬性主要用來加速for循環的重渲染,旨在列表中的數據有變更時,提高重新渲染的效率。tid屬性是用來指定數組中每個元素的唯一標識,如果未指定,數組中每個元素的索引為該元素的唯一id。例如上述tid="id"表示數組中的每個元素的id屬性為該元素的唯一標識。for循環支持的寫法如下:

for=“array”:其中array為數組對象,array的元素變量默認為$item。

for=“v in array”:其中v為自定義的元素變量,元素索引默認為$idx。

for=“(i, v) in array”:其中元素索引為i,元素變量為v,遍歷數組對象array。

說明

數組中的每個元素必須存在tid指定的數據屬性,否則運行時可能會導致異常。

數組中被tid指定的屬性要保證唯一性,如果不是則會造成性能損耗。比如,示例中只有id和name可以作為tid字段,因為它們屬于唯一字段。

tid不支持表達式。

不支持for嵌套使用。

for對應的變量數組,當前要求數組中的object是相同類型,不支持多種object類型混合寫在一個數組中

條件渲染

條件渲染分為2種:if/elif/else和show。

當使用if/elif/else寫法時,節點必須是兄弟節點,否則編譯無法通過。實例如下:


Hello-TV Hello-Wearable Hello-World

{
  "data": {
    "show": false,
    "display": true
  }
}

當show為真時,節點正常渲染;當show為假時,節點不渲染,效果等同display樣式為none。


 Hello World 
{
  "data": {
    "visible": false
  }
}

邏輯控制塊

控制塊使得循環渲染和條件渲染變得更加靈活;block在構建時不會被當作真實的節點編譯。block標簽只支持if屬性。

 

Hello World

{ 
  "data": { 
    "show": true
  } 
}

Markdown 3634 字數 238 行數 當前行 3, 當前列 0

HTML 3362 字數 179 段落

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 語法
    +關注

    關注

    0

    文章

    40

    瀏覽量

    9726
  • 鴻蒙
    +關注

    關注

    56

    文章

    2267

    瀏覽量

    42492
  • HarmonyOS
    +關注

    關注

    79

    文章

    1946

    瀏覽量

    29740
收藏 人收藏

    評論

    相關推薦

    FPGA學習筆記---基本語法

    Verilog語法是指硬件能夠實現的語法。它的子集很小。常用的RTL語法結構如下: 1、模塊聲明:module ... end module 2、端口聲明:input, output, inout
    發表于 06-23 14:58

    esp32-s2-hml-devkit-1的智能面板demo如何放到esp-idf編譯?

    esp32-s2-hml-devkit-1的智能面板demo如何放到esp-idf編譯?
    發表于 06-19 07:56

    騰訊突然宣布,微信鴻蒙版要來了!

    今年初, 華為宣布HarmonyOS NEXT命名為“鴻蒙星河版” ,并計劃在二季度啟動開發者 Beta 計劃,四季度發布商用正式版。 消息一出,不少人為振奮。 鴻蒙星河版因不再兼容安卓開源
    發表于 04-30 19:34

    鴻蒙NEXT南向開發案例:【智能臺燈】

    鴻蒙南向開發智能臺燈案例
    的頭像 發表于 04-03 18:00 ?785次閱讀
    <b class='flag-5'>鴻蒙</b>NEXT南向開發案例:【智能臺燈】

    使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南

    隨著鴻蒙系統的不斷完善,許多應用廠商都希望將自己的應用移植到鴻蒙平臺上。最近,Taro 發布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發鴻蒙原生應用,也可將現有的小程序轉換
    的頭像 發表于 02-02 16:09 ?694次閱讀
    使用 Taro 開發<b class='flag-5'>鴻蒙</b>原生應用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應用開發指南

    鴻蒙OS和開源鴻蒙什么關系?

    開源鴻蒙(Open Harmony) 鴻蒙系統愿來的設計初衷,就是讓所有設備都可以運行一個系統,但是每個設備的運算能力和功能都不同,所以內核的設計上,采用了微內核的設計,除了最基礎的功能放在
    的頭像 發表于 01-30 15:44 ?826次閱讀
    <b class='flag-5'>鴻蒙</b>OS和開源<b class='flag-5'>鴻蒙</b>什么關系?

    鴻蒙開發基礎-Web組件cookie操作

    }) ... } ... 本文章主要是對鴻蒙開發當中ArkTS語言的基礎應用實戰,Web組件里的cookie操作。更多的鴻蒙應用開發技術,可以前往我的主頁學習更多,下面是一張鴻蒙的學習路線如圖(略縮版): 高清完整版,保
    發表于 01-14 21:31

    oracle和mysql語法區別大嗎

    Oracle和MySQL是兩種不同的關系型數據庫管理系統(RDBMS)。雖然它們都是遵循SQL標準,但在語法和特性上仍存在一些區別。以下是對Oracle和MySQL語法區別的詳細說明: 數據類型
    的頭像 發表于 12-06 10:26 ?858次閱讀

    oracle case when 語法介紹

    Oracle的CASE WHEN語法是一種在數據庫查詢中使用的條件語句,它提供了一種在SELECT語句中根據條件對結果進行轉換或篩選的方法。在本文中,我們將詳細介紹Oracle的CASE WHEN
    的頭像 發表于 12-06 10:21 ?1392次閱讀

    oracle的update語法

    Oracle是一種強大的關系型數據庫管理系統,具有廣泛的應用,UPDATE語句是用于修改數據庫中現有記錄的重要操作之一。在本文中,我們將詳細介紹Oracle的UPDATE語法及其用法。 首先,我們
    的頭像 發表于 12-05 16:22 ?1821次閱讀

    javascript的基本語法遵循的標準

    JavaScript是一種腳本語言,用于為網站添加交互性和動態性的功能。它的基本語法遵循ECMAScript標準,這是一種由Ecma國際組織制定的語言標準。本文將詳細介紹JavaScript
    的頭像 發表于 12-03 11:35 ?2435次閱讀

    java switch case的語法規則

    在Java中,switch case語句是一種用于多分支選擇的控制流語句。它允許根據某個表達式的值來執行不同的代碼塊。下面是關于switch case語法規則的詳細解釋。 基本語法 switch語句
    的頭像 發表于 11-30 14:40 ?1321次閱讀

    select語句的基本語法

    、詳實、細致地解釋SELECT語句的基本語法以及關鍵部分。 SELECT語句的基本語法如下: SELECT 列名 1 , 列名 2 , ... FROM 表名 WHERE 條件 上述語法可以分為三個
    的頭像 發表于 11-17 16:23 ?1361次閱讀

    鴻蒙 OS 應用開發初體驗

    Android 基本無差,所以熟悉 Android 開發的同學上手基本沒啥難度。 ArkTS ArkTS 是鴻蒙生態的應用開發語言。它在保持 TypeScript(簡稱 TS)基本語法風格的基礎上
    發表于 11-02 19:38

    quartus基本語法集合

    quartus基本語法集合
    發表于 09-26 07:05