吴忠躺衫网络科技有限公司

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

    文章

    44

    瀏覽量

    9865
  • 鴻蒙
    +關注

    關注

    57

    文章

    2392

    瀏覽量

    43055
  • HarmonyOS
    +關注

    關注

    79

    文章

    1982

    瀏覽量

    30579
收藏 人收藏

    評論

    相關推薦

    AIGC入門及鴻蒙入門

    人工智能生成內容(AIGC)和鴻蒙系統是當前科技領域的兩個熱門話題。以下是對它們的入門指南: AIGC入門 1. 基礎概念: AIGC,全稱Artificial Intelligence
    發表于 01-13 10:32

    鴻蒙機器人與鴻蒙開發板聯動演示

    鴻蒙機器人與鴻蒙開發板聯動演示,機器人的角色為迎賓機器人,開發板負責人賓客出現監聽
    發表于 12-02 14:55

    Verilog語法中運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發表于 10-25 15:17 ?1278次閱讀
    Verilog<b class='flag-5'>語法</b>中運算符的用法

    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

    鴻蒙的1萬個理由,北京中關村現大幅鴻蒙海報

    五一假期以來,北京中關村附近多個地鐵站、公交站出現大幅鴻蒙海報。據統計,不止中關村,北京杭州兩地清華、北大、浙江大學等多所高校附近也掛上了巨幅鴻蒙海報。 學鴻蒙,突破自我,Get職場”星“技能;學
    發表于 05-08 20:31

    實錘!騰訊終于擁抱鴻蒙生態,微信鴻蒙原生版本即將上線

    大家都知道, 目前已知純血鴻蒙星河版next將于今年6月份開啟Bate版本的測試 ,也就是說原生鴻蒙系統快上線了。 而目前對于鴻蒙生態的發展,大家最關心的恐怕只有騰訊系的微信和QQ是否適配了純血
    發表于 04-30 21:14

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

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

    鴻蒙OS崛起,鴻蒙應用開發工程師成市場新寵

    應用的形態也在發生著翻天覆地的變化。作為全球領先的移動操作系統和智能終端制造商,華為公司自主研發的鴻蒙OS應運而生,致力于構建一個統一的分布式操作系統,為各行各業的應用開發帶來全新的可能性。 一、鴻蒙
    發表于 04-29 17:32

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

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

    首個鴻蒙生態創新中心在深揭幕,開啟鴻蒙產業新篇章共繪鴻蒙原生應用開發新篇章

    首個鴻蒙生態創新中心在深揭幕 開啟鴻蒙產業新篇章 2024年3月19日,鴻蒙生態創新中心揭幕儀式在深圳舉行,標志著鴻蒙產業發展邁出新的堅實步伐。深圳市人民政府副秘書長黃強,華為終端BG
    發表于 03-20 09:55

    廣汽傳祺與華為舉行鴻蒙合作簽約儀式,正式加入華為鴻蒙生態!

    3月15日,廣汽傳祺與華為舉行鴻蒙合作簽約儀式,正式加入華為鴻蒙生態,成為首批加入鴻蒙生態的汽車品牌之一,雙方基于HarmonyOS NEXT鴻蒙星河版啟動車機App的
    的頭像 發表于 03-17 10:24 ?969次閱讀

    鴻蒙這么大聲勢,為何遲遲看不見崗位?最新數據來了

    對于鴻蒙生態建設而言,2024年可謂至關重要,而生態建設的前提,就是要有足夠的開發人才。與對應的,今年春招市場上與鴻蒙相關崗位和人才旺盛的熱度,一方面反應了鴻蒙生態的逐漸壯大,另一方
    發表于 02-29 20:53

    學習鴻蒙背后的價值?星河版開放如何學習?

    現在是2024年,華為在1月18開展了鴻蒙千帆起儀式發布會。宣布了鴻蒙星河版,并對開發者開放申請,此次發布會主要是說明了,鴻蒙已經是全棧自研底座,鴻蒙星河版本的編程語言改為ArkTS/
    發表于 02-22 20:55

    那些杠鴻蒙的現在怎么樣了?

    別杠,要杠就是你對。 一個純血鴻蒙就已經打了那些杠精的嘴,以前是套殼Android,大家紛紛噴鴻蒙。現在鴻蒙已經全棧自研,并且已經展開各大企業生態合作。不管什么獨立系統,都是一定要走一遍套殼
    發表于 02-16 22:03
    大赢家娱乐城官方网| 威尼斯人娱乐客户端| 大发888赢钱最多的| 云博备用网| 百家乐官网游戏开发技术| 香港百家乐官网赌场娱乐网规则| 澳门百家乐规则视频| 职业百家乐的玩法技巧和规则 | 六合彩图| 百家乐官网赌场论坛| 百家乐傻瓜式投注法| 大发888是什么东| 乐百家乐官网彩现金开户| 玩百家乐官网掉房| 百家乐丽| 百家乐官网真钱在线| 百家乐官网平玩法可以吗| 百家乐桌子定制| 百家乐官网游戏怎样玩| 百家乐牌数计算法| 大嘴棋牌手机版| 百家乐官网家居| 百家乐里什么叫洗码| 一二博网址| 玩百家乐官网犯法| 老人头百家乐的玩法技巧和规则 | 百家乐官网下注技巧| 百家乐开户送8彩金| 豪门国际娱乐网| 新东方百家乐官网娱乐城| 大发888娱乐官方下载| 百家乐官网桌布橡胶| 百家乐必赢| 太阳城百家乐官网筹码租| 百家乐服务区| 应用必备| 喜达百家乐官网的玩法技巧和规则| 大发888网页多少| 最新百家乐官网双面数字筹码| 威尼斯人娱乐城位置| 网上百家乐官网真的假|