![【HarmonyOS】應(yīng)用開發(fā)第五章-JS UI基礎(chǔ)_第1頁](http://file4.renrendoc.com/view14/M01/15/28/wKhkGWel5oqAL2yFAADZEWlp6XQ597.jpg)
![【HarmonyOS】應(yīng)用開發(fā)第五章-JS UI基礎(chǔ)_第2頁](http://file4.renrendoc.com/view14/M01/15/28/wKhkGWel5oqAL2yFAADZEWlp6XQ5972.jpg)
![【HarmonyOS】應(yīng)用開發(fā)第五章-JS UI基礎(chǔ)_第3頁](http://file4.renrendoc.com/view14/M01/15/28/wKhkGWel5oqAL2yFAADZEWlp6XQ5973.jpg)
![【HarmonyOS】應(yīng)用開發(fā)第五章-JS UI基礎(chǔ)_第4頁](http://file4.renrendoc.com/view14/M01/15/28/wKhkGWel5oqAL2yFAADZEWlp6XQ5974.jpg)
![【HarmonyOS】應(yīng)用開發(fā)第五章-JS UI基礎(chǔ)_第5頁](http://file4.renrendoc.com/view14/M01/15/28/wKhkGWel5oqAL2yFAADZEWlp6XQ5975.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第八章HarmonyOS分布式應(yīng)用開發(fā)武漢大學(xué)計算機(jī)學(xué)院趙小剛HML語法CSS語法JS語法HML語法頁面結(jié)構(gòu)數(shù)據(jù)綁定事件綁定列表渲染條件渲染頁面結(jié)構(gòu)HML文件中采用類似html定義頁面元素的方法定義APP頁面組成,JSUI框架處理該代碼時會生成頁面的文檔對象模型(Document
Object
Model,DOM)。通過DOM,JS能夠動態(tài)處理HML文件中包含的內(nèi)容,結(jié)構(gòu)和樣式。數(shù)據(jù)綁定可以在HML文件中需要進(jìn)行數(shù)據(jù)后續(xù)設(shè)置和變更的地方進(jìn)行數(shù)據(jù)綁定操作。<div>
<text>{{content[1]}}</text></div>這里text文本框的內(nèi)容在HML文件中是沒有設(shè)置的。其數(shù)據(jù)來自于JS文件。exportdefault{
data:{
content:['HelloWorld!','Welcometomyworld!']
}}事件綁定在移動應(yīng)用中,頁面元素經(jīng)常要與用戶交互,交互的主要方式是手指的觸摸事件,對觸摸事件的響應(yīng)。事件通過'on'或者'@'綁定在組件上,當(dāng)組件觸發(fā)事件時會執(zhí)行JS文件中對應(yīng)的事件回調(diào)函數(shù)。<divclass="container"><textclass="title">{{count}}</text><divclass="box"><inputtype="button"class="btn"value="increase"onclick="increase"/><inputtype="button"class="btn"value="decrease"@click="decrease"/><inputtype="button"class="btn"value="double"@click="multiply(2)"/><inputtype="button"class="btn"value="square"@click="multiply(count)"/></div></div>列表渲染移動應(yīng)用頁面中經(jīng)常需要對一類相同的元素進(jìn)行顯示,如聯(lián)系人,圖片庫等,可以使用列表渲染方法。<divclass="array-container"><divfor="{{array}}"tid="id"onclick="changeText"><text>{{$idx}}.{{$}}</text></div><divfor="{{valueinarray}}"tid="id"onclick="changeText"><text>{{$idx}}.{{}}</text></div><divfor="{{(index,value)inarray}}"tid="id"onclick="changeText"><text>{{index}}.{{}}</text></div></div>條件渲染條件渲染分為2種:if/elif/else和show。這兩種方式都可以控制組件的顯示。兩種寫法的區(qū)別在于:第一種寫法里if為false時,組件不會在vdom中構(gòu)建,也不會渲染,而第二種寫法里show為false時雖然也不渲染,但會在vdom中構(gòu)建;另外,當(dāng)使用if/elif/else寫法時,節(jié)點必須是兄弟節(jié)點,否則編譯無法通過。<textif="{{showit}}">Hello-TV</text><textelif="{{display}}">Hello-Wearable</text><textelse>Hello-World</text>HML語法CSS語法JS語法CSS語法尺寸單位樣式選擇器偽類尺寸單位在頁面元素的樣式描述中,第一個需要定義的是組件的大小。因為JSUI支持一次開發(fā),多端部署,其實就需要頁面元素在不同的分辨率下都能夠顯示在恰當(dāng)?shù)奈恢?。實現(xiàn)該過程只需要修改樣式文件就可以了,對頁面結(jié)構(gòu)文件.hml和頁面邏輯文件.js是不需要變更的。要實現(xiàn)該目標(biāo),必須了解樣式文件中用到的組件尺寸單位與實際物理像素點大小之間的映射關(guān)系。在樣式文件中用到的尺寸單位為邏輯像素px和百分比,其與物理像素和屏幕大小之間的關(guān)系為:邏輯像素px:默認(rèn)屏幕具有的邏輯寬度為720px(手機(jī)屏幕),如100px在實際寬度為1440物理像素的屏幕上,實際渲染為200物理像素百分比:.css文件中通常以%表示,表示該組件占父組件尺寸的百分比。樣式選擇器CSS選擇器用于選擇需要添加樣式的元素,常見的五種選擇器如下表選擇器樣例樣例描述.class.container用于選擇class="container"的組件。#id#titleId用于選擇id="titleId"的組件。tagtext用于選擇text組件。,.title,.content用于選擇class="title"和class="content"的組件。.classtag.contenttext選擇具有class="content"行為的所有text組件。樣式選擇器示例<divid="containerId"class="container"><textid="titleId"class="title">標(biāo)題</text><divclass="content"><textid="contentId">內(nèi)容</text></div></div>div{flex-direction:column;}.title{font-size:30px;}#contentId{font-size:20px;}.title,.content{margin:20px;}.containertext{color:#007dff;}選擇器優(yōu)先級當(dāng)多條選擇器聲明匹配到同一元素時,各類選擇器優(yōu)先級由高到低順序為:內(nèi)聯(lián)樣式>id>class>tag。優(yōu)先級高的選擇器樣式設(shè)置會覆蓋優(yōu)先級低的選擇器樣式,同級的選擇器后面的樣式會覆蓋前面的樣式。組件樣式的生命除了用單獨的.css文件外,也可以直接定義在.hml文件中<divclass="container"><textstyle="color:red">HelloWorld</text></div>CSS偽類CSS偽類是選擇器中的關(guān)鍵字,用于指定要選擇元素的特殊狀態(tài)。名稱支持組件描述:disabled支持disabled屬性的組件表示disabled屬性變?yōu)閠rue時的元素。:focus支持focusable屬性的組件表示獲取focus時的元素。:active支持click事件的組件表示被用戶激活的元素,如:被用戶按下的按鈕、被激活的tab-bar頁簽。:checkedinput[type="checkbox"、type="radio"]、switch表示checked屬性為true的元素。CSS偽類示例<divclass="container"><inputtype="button"class="button"value="Button"></input></div>.button:active{background-color:blue;}當(dāng)按鈕被點擊時,背景顏色變?yōu)樗{(lán)色。HML語法CSS語法JS語法JS語法對象方法語法this關(guān)鍵字模塊聲明importrouterfrom'@system.router';代碼引用importutilsfrom'../../common/utils.js';對象JS文件中除了自定義對象外,常用的系統(tǒng)對象包括應(yīng)用對象,頁面對象等。應(yīng)用對象頁面對象應(yīng)用對象為$app,其屬性包括$def,該屬性為Object類型,可以使用this.$app.$def獲取在app.js中暴露的對象。//app.jsexportdefault{globalData:{appData:'appData',appVersion:'2.0',},};//index.jsexportdefault{data:{appData:'localData',appVersion:'1.0',},onInit(){this.appData=this.$app.$def.globalData.appData;this.appVersion=this.$app.$def.globalData.appVersion;},頁面對象對象類型描述dataObject/Function頁面的數(shù)據(jù)模型,類型是對象或者函數(shù),如果類型是函數(shù),返回值必須是對象。$refsObject持有注冊過ref屬性的DOM元素或子組件實例的對象。privateObject頁面的數(shù)據(jù)模型,private下的數(shù)據(jù)屬性只能由當(dāng)前頁面修改。publicObject頁面的數(shù)據(jù)模型,public下的數(shù)據(jù)屬性的行為與data保持一致。propsArray/Objectprops用于組件之間的通信,props名稱必須用小寫。computedObject用于在讀取或設(shè)置進(jìn)行預(yù)先處理,計算屬性的結(jié)果會被緩存。$refs&computed<divclass="container"><image-animatorclass="image-player"ref="animator"images="{{images}}"duration="1s"></image-animator></div>handleClick(){constanimator=this.$refs.animator;}computed:{message(){returnthis.time+''+this.objTitle;},notice:{get(){returnthis.time;},set(newValue){this.time=newValue;},},},onClick(){('getclickevent'+this.message);this.notice='Tomorrow';(this.time);},方法數(shù)據(jù)方法:set和delete方法參數(shù)描述$setkey:string,value:any添加新的數(shù)據(jù)屬性或者修改已有數(shù)據(jù)屬性。$deletekey:string刪除數(shù)據(jù)屬性。exportdefault{data:{keyMap:{OS:'HarmonyOS',Version:'2.0',},},getAppVersion(){this.$set('keyMap.Version','3.0');("keyMap.Version="+this.keyMap.Version);this.$delete('keyMap');("keyMap.Version="+this.keyMap);}}方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC TS 62257-9-8:2025 EN Renewable energy off-grid systems - Part 9-8: Integrated systems - Requirements for stand-alone renewable energy products with power ratings less th
- 瑜伽行業(yè)私教課程合同
- 房屋代理銷售協(xié)議
- 夫妻共同擔(dān)保簽字借款合同
- 外立面裝修施工合同
- 汽車零部件生產(chǎn)加工合作協(xié)議
- 數(shù)字文化創(chuàng)意產(chǎn)業(yè)投資合同
- 產(chǎn)品研發(fā)合作框架協(xié)議
- 國家建造師聘用協(xié)議書
- 機(jī)關(guān)事業(yè)單位編外人員勞動合同書
- 2025年度光伏電站光伏組件回收處理合同示范文本
- 2025年春季少先隊工作計劃及安排表(附:少先隊每月工作安排表)
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫附帶答案詳解
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 2024-2025學(xué)年全國中學(xué)生天文知識競賽考試題庫(含答案)
- 小學(xué)科學(xué)湘科版六年級下冊全冊同步練習(xí)含答案
- 思維第一:全面提升學(xué)習(xí)力
- 影視文學(xué)教程整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)
- 防火門監(jiān)控系統(tǒng)調(diào)試、檢測、驗收記錄
- “大水利”概念及其意義
- 三年級上冊數(shù)學(xué)應(yīng)用題大全98715
評論
0/150
提交評論