成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于JS通用組件的鴻蒙購(gòu)物應(yīng)用開(kāi)發(fā)

開(kāi)發(fā)
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com

[[395325]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1. 介紹

HarmonyOS支持應(yīng)用以Ability為單位進(jìn)行部署,Ability可以分為FA(Feature Ability)和PA(Particle Ability)兩種類型。

本篇Codelab將會(huì)使用UI組件開(kāi)發(fā)出一個(gè)HarmonyOS購(gòu)物應(yīng)用。

HarmonyOS為開(kāi)發(fā)者提供了多種組件,每個(gè)組件通過(guò)對(duì)數(shù)據(jù)和方法的簡(jiǎn)單封裝,實(shí)現(xiàn)獨(dú)立的可視、可交互功能單元。開(kāi)發(fā)者只需要關(guān)注實(shí)現(xiàn)邏輯,減少開(kāi)發(fā)量。

最終效果預(yù)覽

我們最終會(huì)構(gòu)建一個(gè)簡(jiǎn)易的購(gòu)物應(yīng)用。應(yīng)用包含兩級(jí)頁(yè)面,分別是主頁(yè)(商品瀏覽頁(yè)簽、購(gòu)物車頁(yè)簽、我的頁(yè)簽)和商品詳情頁(yè)面,兩個(gè)頁(yè)面都展示了豐富的HarmonyOS UI組件,包括:自定義彈窗容器(dialog),列表(list),滑動(dòng)容器(swiper),頁(yè)簽組件(tabs),按鈕組件(button),圖表組件(chart),分隔器組件(divider),圖片組件(image),交互式組件(input),跑馬燈組件(marquee),菜單組件(menu),滑動(dòng)選擇器組件(picker),進(jìn)度條組件(progress),評(píng)分條組件(rating),搜索框組件(search)。

商品瀏覽頁(yè)面和商品詳情頁(yè)面如下圖:

2. 搭建HarmonyOS環(huán)境

● 安裝DevEco Studio和Node.js,詳情請(qǐng)參考下載和安裝軟件。

● 設(shè)置DevEco Studio開(kāi)發(fā)環(huán)境,DevEco Studio開(kāi)發(fā)環(huán)境需要依賴于網(wǎng)絡(luò)環(huán)境,需要連接上網(wǎng)絡(luò)才能確保工具的正常使用,可以根據(jù)如下兩種情況來(lái)配置開(kāi)發(fā)環(huán)境:

● 如果可以直接訪問(wèn)Internet,只需進(jìn)行下載HarmonyOS SDK操作。

● 如果網(wǎng)絡(luò)不能直接訪問(wèn)Internet,需要通過(guò)代理服務(wù)器才可以訪問(wèn),請(qǐng)參考配置開(kāi)發(fā)環(huán)境。

  • 🕮 說(shuō)明
  • 如需要在手機(jī)中運(yùn)行程序,則需要提前申請(qǐng)證書(shū),如使用模擬器可忽略。

● 準(zhǔn)備密鑰和證書(shū)請(qǐng)求文件

● 申請(qǐng)調(diào)試證書(shū)

你可以通過(guò)如下兩種方式完成本篇Codelab:

● 開(kāi)啟開(kāi)發(fā)者模式的HarmonyOS真機(jī)。

● DevEco Studio中的手機(jī)模擬器(模擬器暫不支持分布式調(diào)試)。

3. 代碼結(jié)構(gòu)解讀

本篇Codelab只對(duì)核心代碼進(jìn)行講解,對(duì)于完整代碼,我們會(huì)在7 參考中提供下載方式,接下來(lái)我們會(huì)用一小節(jié)來(lái)講解整個(gè)工程的代碼結(jié)構(gòu):

● entry/src/main/js/default/common 文件夾存放一些公共的資源,比如圖片。

● entry/src/main/js/default/pages 文件夾存放 HarmonyOS JS的頁(yè)面,包含css、hml、js三類文件。

● entry/src/main/config.json:配置文件。

4. 頁(yè)面詳細(xì)解析

接下來(lái),我們就可以編寫(xiě)css、hml、js代碼了。

搜索框組件(search):用于提供用戶搜索內(nèi)容的輸入?yún)^(qū)域,圖片示例和代碼如下:

頁(yè)面展示:

  1. <search hint="{{pageWord.searchKeyWord}}" value="{{pageWord.searchValue}}" focusable="true" @change="searchColumn" @submit="submitColumn"></search> 

tab頁(yè)簽容器(tabs),圖片示例和代碼如下:

的子組件(tab-bar):用來(lái)展示tab的標(biāo)簽區(qū)。

的子組件(tab-content):用來(lái)展示tab的內(nèi)容區(qū)。

注:用戶可通過(guò)左右滑動(dòng)或點(diǎn)擊不同tab標(biāo)簽區(qū),來(lái)顯示不同tab標(biāo)簽區(qū)的內(nèi)容區(qū)

  1. <tabs class="tabs" index="0" vertical="false" onchange="change">  
  2.     <tab-bar class="tab-bar" mode="fixed">  
  3.         <text class="tab-text" for="{{ item in titileList}}">{{ item }}  
  4.     </text>  
  5.     </tab-bar>  
  6.     <tab-content class="tabcontent" scrollable="true">  
  7.         <div class="item-content" for="{{ item in contentList}}">  
  8.         <list class="todo-wraper">  
  9.             <list-item for="{{lists}}">  
  10.                 <div class="margin10" @click="detailPage">  
  11.                     <div class="todo-total">  
  12.                         <text class="todo-title">{{$item.title}}</text>  
  13.                         <text class="todo-content">{{$item.content}}</text>  
  14.                         <text class="todo-price">  
  15.                             <span>¥</span>  
  16.                             <span>{{$item.price}}</span>  
  17.                         </text>  
  18.                     </div>  
  19.                     <div class="width30">  
  20.                         <image src="{{$item.imgSrc}}" class="container-home-image"></image>  
  21.                     </div>  
  22.                 </div>  
  23.             </list-item>  
  24.         </list>  
  25.         </div>  
  26.     </tab-content>  
  27. </tabs> 

不同標(biāo)簽頁(yè)圖標(biāo)切換(點(diǎn)擊應(yīng)用的正下面的不同標(biāo)簽,頁(yè)面會(huì)隨之切換,被選中的頁(yè)面圖片變紅),圖片示例和代碼如下:

  1. <div class="container-bottom-div" @click="buy" @click="clickBuy">  
  2.     <image src="{{icon.buys}}" class="container-bottom-div-image" @click="clickBuy"></image>  
  3.     <image src="{{icon.shoppingCarts}}" class="container-bottom-div-image" @click="clickShoppingCart"></image>  
  4.     <image src="{{icon.mys}}" class="container-bottom-div-image" @click="clickMy"></image>  
  5. </div> 

購(gòu)物車頁(yè)面:用戶可以把選中的商品加入購(gòu)物車,然后可以選中想要拍下的商品,進(jìn)行結(jié)算,圖片示例和代碼如下:

  1. <div class="top-comm flex-direction-column">  
  2.     <div for="{{ latestList }}" class="flex-direction-column">  
  3.         <div class="container-shopping-list">  
  4.             <input type="checkbox" value="{{$item.price}}" @change="addShopping"></input>  
  5.             <image src="{{$item.imgSrc}}" class="container-shopping-list-image"></image>  
  6.             <div class="container-shopping-list-div">  
  7.                 <text class="container-shopping-list-div-text">{{$item.title}}</text>  
  8.             <text class="container-shopping-list-div-texts">  
  9.             <span>{{$item.price}}</span> 
  10.             <span>元</span>  
  11.         </text>  
  12.             </div>  
  13.         </div>  
  14.         <divider class="container-shopping-list-divider"></divider>  
  15.     </div>  
  16. </div> 

我的頁(yè)面布局,圖片示例和代碼如下:

  1. <div class="container-my-deals">  
  2.     <text class="container-my-deals-text">{{pageWord.myDeals}}</text>  
  3.     <div class="container-my-deals-div">  
  4.         <div class="container-my-deals-div-div" for="{{transaction}}">  
  5.             <image src="{{$item.src}}" class="container-my-image"></image>  
  6.             <text class="container-my-text">{{$item.title}}{{$item.num}}</text>  
  7.         </div>  
  8.     </div>  
  9. </div> 

頁(yè)面路由跳轉(zhuǎn):用戶點(diǎn)擊商品瀏覽頁(yè)面的任意商品,頁(yè)面會(huì)跳轉(zhuǎn)到商品詳情頁(yè)面,圖片示例和代碼如下:

  1. detailPage() {  
  2.     router.push({  
  3.         uri: "pages/shoppingDetailsPage/shoppingDetailsPage"  
  4.     })  
  5. }, 

滑動(dòng)容器(swiper):用戶可以在swiper組件上進(jìn)行滑動(dòng) 左右切換圖片,或者3s自動(dòng)滑動(dòng)一次,圖片示例和代碼如下:

  1. <swiper class="swiper" id="swiper" index="0" autoplay="true" interval="3000" indicator="true" loop="true" digital="false">  
  2.     <div class="swiperContent" for="{{ item in swiperList }}">  
  3.         <image src="/common/computer/computer{{item}}.png"></image>  
  4.     </div>  
  5. </swiper> 

跑馬燈組件(marquee):展示一段單行滾動(dòng)的文字,圖片示例和代碼如下:

  1. <marquee id="customMarquee" class="customMarquee" scrollamount="{{scrollAmount}}" loop="{{loop}}" direction="{{marqueeDir}}" @bounce="onMarqueeBounce" @start="onMarqueeStart" @finish="onMarqueeFinish">          
  2.     {{pageInfo.marqueeCustomData}}  
  3. </marquee> 

對(duì)樣式進(jìn)行動(dòng)態(tài)雙向綁定,可以修改"次日達(dá)"字體的顏色 ,圖片示例和代碼如下:

  1. <text class="content-column-size-mar" style="color : {{textColor}};" @click="changeColor">{{pageInfo.nextDayReach}}</text>  
  2.   
  3. export default {  
  4.     data: {  
  5.         textColor: '#FF3536',  
  6.     }  

省市級(jí)聯(lián)選擇器和日期選擇器以及dialog自定義彈窗容器的實(shí)現(xiàn),圖片示例和代碼如下:

點(diǎn)擊選擇會(huì)彈出Dialog,頁(yè)面會(huì)有時(shí)間選擇器和省市級(jí)聯(lián)選擇器。

用戶在彈出的時(shí)間選擇器上選擇日期,點(diǎn)擊確定,頁(yè)面上的數(shù)據(jù)也會(huì)同時(shí)改變。省市級(jí)聯(lián)選擇器,同理。

  1. <div class="dialog-div-select">  
  2.     <div>  
  3.         <text class="dialog-div-select-text">{{pageInfo.selectRewardTime}}</text>  
  4.         <div class="dialog-div-select-picker">  
  5.             <picker type="date" selected="{{ newDate }}" hours="24" value="{{ newDate }}" @change="changeDate" @cancel="cancelDate"></picker>  
  6.         </div>  
  7.     </div>  
  8.     <div>  
  9.         <text class="dialog-div-select-text">{{pageInfo.selectRewardCity}}</text>  
  10.         <div class="dialog-div-select-picker">  
  11.             <picker type="multi-text" @columnchange="columnTextData" columns="3" range="{{cityList}}" value="{{selectCityList}}" @change="changeCity"></picker>  
  12.         </div>  
  13.     </div>  
  14. </div> 

評(píng)分彈框(rating),圖片示例和代碼如下:

點(diǎn)擊評(píng)分,會(huì)彈出帶有評(píng)分彈框的dialog彈窗容器。

  1. <dialog id="ratingDialog" class="dialog-main" @cancel="cancelrRatingDialog">  
  2.     <div class="dialog-div">  
  3.         <div class="dialog-div-rating">  
  4.             <text class="font-size22 font-weight600">{{pageInfo.softwareScore}}</text>  
  5.             <rating numstars="5" rating="{{ratingNum}}" @change="ratingChange"></rating>  
  6.             <text class="font-size22 font-weight600">{{pageInfo.ratingReason}}</text>  
  7.             <input type="text" placeholder="{{pageInfo.ratingPlaceholder}}" value="{{ratingReason}}" @change="ratingReasonChange"></input>  
  8.             <div class="dialog-divs-divider-div">  
  9.                 <text class="font-size22 color-deepskyblue" @click="confirmRatingInfo">{{pageInfo.confirm}}</text>  
  10.                 <divider vertical="true" class="dialog-divider"></divider>  
  11.                 <text class="font-size22 color-deepskyblue" @click="cancelrRatingDialog">{{pageInfo.cancel}}</text>  
  12.             </div>  
  13.         </div>  
  14.     </div>  
  15. </dialog> 

瀏覽量頁(yè)面:chart組件(曲線圖可以實(shí)時(shí)動(dòng)態(tài)更新數(shù)據(jù)),圖片示例和代碼如下:

  1. <stack class="chart-region">  
  2.     <image class="chart-background" src="common/background.png"></image>  
  3.     <chart class="chart-data" type="line" ref="linechart" options="{{lineOps}}" datasets="{{lineData}}"></chart>  
  4. </stack> 

點(diǎn)擊立即搶購(gòu)會(huì)彈出一個(gè)含有進(jìn)度條(progress)的彈框 ,圖片示例和代碼如下:

  1. <progress class="min-progress" type="scale-ring" percent="{{progress.percent}}" secondarypercent="{{progress.secondarypercent}}"></progress> 
  2. 1. 
  • 🕮 說(shuō)明
  • 以上所以代碼僅demo演示參考使用。

5. 回顧和總結(jié)

本篇Codelab我們介紹了應(yīng)用的主頁(yè)面和詳情頁(yè),兩個(gè)頁(yè)面都展示了豐富的HarmonyOS UI組件如下圖。

另外,我們還把常用的一些組件運(yùn)用到到該應(yīng)用里面,比如:

1.常用的chart圖表組件:用曲線動(dòng)態(tài)展示不同時(shí)間段的瀏覽量。

2.rating評(píng)分條組件:運(yùn)用到給軟件/該商品打分評(píng)價(jià)。

3.選擇器:省市級(jí)類選擇器、時(shí)間選擇器。

圖片示例如下:

6. 恭喜您

目前你已經(jīng)成功完成了Codelab并且學(xué)到了:

● 如何使用HarmonyOS UI常用組件。

● 如何實(shí)現(xiàn)各頁(yè)面之間的跳轉(zhuǎn)。

7. 參考

gitee源碼

github源碼

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-02-20 12:34:53

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-06-22 09:44:56

鴻蒙HarmonyOS應(yīng)用

2022-10-17 14:36:09

ArkUI虛擬搖桿組件

2021-08-26 15:41:40

鴻蒙HarmonyOS應(yīng)用

2022-06-28 14:42:26

ETS購(gòu)物車應(yīng)用

2022-08-09 16:01:24

應(yīng)用開(kāi)發(fā)鴻蒙

2022-02-21 15:25:47

HarmonyOS鴻蒙低代碼開(kāi)發(fā)

2020-11-09 11:56:49

HarmonyOS

2022-05-19 15:59:23

組件焦點(diǎn)鴻蒙

2020-11-11 11:56:05

HarmonyOS

2021-09-29 10:15:00

鴻蒙HarmonyOS應(yīng)用

2022-10-11 23:53:08

組件架構(gòu)開(kāi)發(fā)

2021-09-17 09:30:57

鴻蒙HarmonyOS應(yīng)用

2022-09-09 14:42:17

應(yīng)用開(kāi)發(fā)ETS

2022-02-17 14:51:39

HarmonyOSJSPAI開(kāi)發(fā)canvas畫(huà)布

2020-09-28 15:13:04

鴻蒙

2024-03-19 08:45:45

WebSocketSpring應(yīng)用開(kāi)發(fā)

2009-05-20 14:48:07

ibmdwEclipse開(kāi)發(fā)技巧

2022-07-26 14:40:42

ArkUIJS

2011-11-24 21:25:15

ibmdw
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www.日韩免费 | 日韩中出 | 麻豆视频在线看 | 国产激情片在线观看 | av一区二区三区在线观看 | 亚洲第一福利网 | 在线日韩视频 | 大象视频一区二区 | 电影在线| 日本黄色激情视频 | 免费黄色a视频 | 精品久久一区二区三区 | 亚洲精品在 | 国产福利小视频 | 日韩在线不卡 | 中文字幕日本一区二区 | 久久大陆 | 国产目拍亚洲精品99久久精品 | 精品日韩在线 | 91资源在线 | 亚洲第一视频网站 | 涩爱av一区二区三区 | 精品欧美一区二区三区久久久 | 欧美性成人 | 亚洲欧美日韩久久久 | 最新中文字幕在线 | 美女久久 | 亚洲美女网站 | 亚洲免费av一区 | 亚洲精品久久久一区二区三区 | 激情五月婷婷 | 亚洲一区二区视频 | 天天拍天天插 | av在线播放免费 | 久久亚洲国产 | 日本午夜网 | 亚洲日本欧美日韩高观看 | 欧美成人一级 | 国产精品国产精品国产专区不片 | 午夜视频在线观看视频 | 亚洲不卡一|