一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于ETS開(kāi)發(fā)范式制作Loading組件

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:HarmonyOS技術(shù)社區(qū) ? 作者:HarmonyOS技術(shù)社區(qū) ? 2022-04-12 08:56 ? 次閱讀

最近剛接觸基于 OpenHarmony 開(kāi)源框架的應(yīng)用開(kāi)發(fā),特別是基于 JS/ETS 開(kāi)發(fā)范式。

其中基于 JS 的應(yīng)用開(kāi)發(fā),與 vue 語(yǔ)法和思想高度相似,數(shù)據(jù)模型僅僅是普通的 JavaScript 對(duì)象。而當(dāng)你修改它們時(shí),視圖會(huì)進(jìn)行更新。這使得狀態(tài)管理非常簡(jiǎn)單直接式??梢灶?lèi)比學(xué)習(xí)。

今天就 ETS 規(guī)范,寫(xiě)一個(gè) Loading 的組件,熟悉 ETS 下的一些基礎(chǔ)組件的應(yīng)用和聯(lián)動(dòng)。

參考資料

OpenHarmony API
https://docs.openharmony.cn/pages/000701010201/
OpenHarmony / docs:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md

UI開(kāi)發(fā)模式

如下圖:

9c3bd28e-b9c4-11ec-aa7f-dac502259ad0.png

實(shí)現(xiàn)

①新建項(xiàng)目

如下圖:

9c5a6c30-b9c4-11ec-aa7f-dac502259ad0.png

語(yǔ)言選擇 eTS,API Version 選擇 8,不然部分組件不支持。

②頁(yè)面布局

如下:
  • 用到的容器組件有:Column,Row

  • 用到的其他組件有:Image,Text,Slider

Column(){//沿垂直方向布局的容器
Row(){//沿水平方向布局容器。
Text()//文本,用于呈現(xiàn)一段信息。
Image()
}
Row(){
Text()
Image()//圖片組件,用來(lái)渲染展示圖片。
}
Row(){
Text()
Silder()//滑動(dòng)條組件,用來(lái)快速調(diào)節(jié)設(shè)置值,如音量、亮度等。
}
Row(){
Text()
Silder()
}
}
③根據(jù) Silder 和 Image 的參數(shù)設(shè)置要求賦初始值

如下圖:

9c6c6a84-b9c4-11ec-aa7f-dac502259ad0.png

@StateinSetValue:number=10
@StateoutVerticalSetValue:number=40
@StateinVerticalSetValue:number=40

@Stateprivatedegree:number=0
@Stateprivatespeed:number=5
@Stateprivatetimer:number=0
@StateprivateimageSize:number=0

④設(shè)置關(guān)聯(lián)

將 Slider 進(jìn)度值賦給 Image rotate 屬性的坐標(biāo)值,在頁(yè)面加載的生命周期 onPageShow 中反復(fù)這一過(guò)程,最后記得把清楚定時(shí)器以免內(nèi)存泄漏。

Image($r('app.media.load'))
.rotate({x:0,y:0,z:1,angle:this.degree}).objectFit(ImageFit.Contain)
.scale({x:this.imageSize,y:this.imageSize})

speedChange(){
this.timer=setInterval(()=>{
this.degree+=this.speed;
},20)
}
onPageShow(){
this.speedChange()
}
onPageHide(){
this.timer=null;
}

⑤用 @Builder() 裝飾器封裝相同的功能,減少冗余代碼

代碼如下:

//聲明
@Builder
TextInfo(text:string){
Column(){
Text(text)
.fontSize(29)
.fontColor("#708090")
.width('90%')
.margin({top:20,left:25})
}
}
//調(diào)用
this.TextInfo('Changespeed'

效果圖如下:

9c8fa134-b9c4-11ec-aa7f-dac502259ad0.png

總結(jié)

此例就基于 ETS 組件的基本使用和關(guān)聯(lián),以及裝飾器 @Builer 的簡(jiǎn)單使用展開(kāi)說(shuō)明,旨在熟悉 ETS 規(guī)范和對(duì)組件的初體驗(yàn)。
思考:如果業(yè)務(wù)比較復(fù)雜,可以根據(jù)實(shí)際的場(chǎng)景和數(shù)據(jù)的情況抽成更小粒度的組件,以便更方便的組合,提升效率。

原文標(biāo)題:在OpenHarmony上寫(xiě)一個(gè)Loading組件

文章出處:【微信公眾號(hào):HarmonyOS技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3533

    瀏覽量

    43294
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    527

    瀏覽量

    18241
  • OpenHarmony
    +關(guān)注

    關(guān)注

    26

    文章

    3804

    瀏覽量

    17861

原文標(biāo)題:在OpenHarmony上寫(xiě)一個(gè)Loading組件

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于eTS的HamronyOS應(yīng)用開(kāi)發(fā)

    隨著HarmonyOS 3.0 Beta版的發(fā)布,API Version 8新增了大批JS/eTS API接口,相信很多開(kāi)發(fā)者已經(jīng)迫不及待想體驗(yàn)基于eTS的HamronyOS應(yīng)用開(kāi)發(fā)
    的頭像 發(fā)表于 07-15 09:20 ?2108次閱讀
    基于<b class='flag-5'>eTS</b>的HamronyOS應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>

    基于ArkUI eTS開(kāi)發(fā)的堅(jiān)果笑話(huà)(NutJoke)

    ? 都說(shuō)笑一笑十年少,確實(shí),在生活中,我們也是很久沒(méi)有笑了,那么今天,我就做一個(gè)鴻蒙eTS版的堅(jiān)果笑話(huà)App, 實(shí)現(xiàn)的功能: 獲取接口數(shù)據(jù) 笑話(huà)列表 笑話(huà)詳情頁(yè) 你能學(xué)到的有: 網(wǎng)絡(luò)請(qǐng)求 可滾動(dòng)組件
    的頭像 發(fā)表于 08-19 09:59 ?1515次閱讀

    課程預(yù)告丨12月15日官方直播帶你領(lǐng)略ArkUI的聲明式開(kāi)發(fā)范式之美

    方舟開(kāi)發(fā)框架(ArkUI)的聲明式開(kāi)發(fā)范式有什么優(yōu)勢(shì)?Java/JS/eTS(extended TypeScript)三種語(yǔ)言,用哪種語(yǔ)言更好?12月15日 19:00-20:30,H
    發(fā)表于 12-10 17:52

    HarmonyOS應(yīng)用開(kāi)發(fā)-eTS-Navigator組件練習(xí)

    說(shuō)明:路由容器組件,提供路由跳轉(zhuǎn)能力。接口:Navigator(value?: {target: string, type?: NavigationType})接口參數(shù):屬性:案例:創(chuàng)建新的ets
    發(fā)表于 12-21 09:36

    100行代碼實(shí)現(xiàn)HarmonyOS“畫(huà)圖”應(yīng)用,eTS開(kāi)發(fā)走起!

    式UI框架——方舟開(kāi)發(fā)框架(ArkUI)。ArkUI框架引入了基于TS擴(kuò)展的聲明式開(kāi)發(fā)范式,讓開(kāi)發(fā)變得更加簡(jiǎn)潔、高效! 已經(jīng)有很多開(kāi)發(fā)者在
    發(fā)表于 03-30 14:28

    基于openHarmong ETS寫(xiě)一個(gè)Loading組件

    修改它們時(shí),視圖會(huì)進(jìn)行更新。這使得狀態(tài)管理非常簡(jiǎn)單直接式??梢灶?lèi)比學(xué)習(xí)。今天就ETS規(guī)范,寫(xiě)一個(gè)Loading組件,熟悉ETS下的一些基礎(chǔ)組件
    發(fā)表于 03-31 14:37

    94個(gè)JS/eTS開(kāi)源組件首發(fā)上新,肯定有你要用的一款!

    /eTS開(kāi)發(fā)隊(duì)伍中,我們也收到不少開(kāi)發(fā)者對(duì)JS/eTS組件的需求,比如: 在廣大組件貢獻(xiàn)者
    發(fā)表于 05-09 14:51

    想學(xué)習(xí)eTS開(kāi)發(fā)?教你開(kāi)發(fā)一款I(lǐng)Q-EQ測(cè)試應(yīng)用

    的獨(dú)立創(chuàng)建、開(kāi)發(fā)和復(fù)用。本次IQ- EQ測(cè)試應(yīng)用,通過(guò)對(duì)容器組件的組合使用,實(shí)現(xiàn)了多個(gè)頁(yè)面的UI布局。比如,EQ測(cè)試題目頁(yè)(對(duì)應(yīng)ets/default/pages/eqTest.ets
    發(fā)表于 06-23 12:01

    #深入淺出學(xué)習(xí)eTs#(五)eTs語(yǔ)言初識(shí)

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一、eTs介紹概述基于TS擴(kuò)展的聲明式開(kāi)發(fā)范式
    發(fā)表于 12-29 10:02

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-ArkTS的聲明式開(kāi)發(fā)范式

    軌跡。狀態(tài)與數(shù)據(jù)管理狀態(tài)數(shù)據(jù)管理作為基于ArkTS的聲明式開(kāi)發(fā)范式的特色,通過(guò)功能不同的裝飾器給開(kāi)發(fā)者提供了清晰的頁(yè)面更新渲染流程和管道。狀態(tài)管理包括UI組件狀態(tài)和應(yīng)用程序狀態(tài),兩者協(xié)
    發(fā)表于 01-17 15:09

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-類(lèi)Web開(kāi)發(fā)范式

    兼容JS的類(lèi)Web開(kāi)發(fā)范式的方舟開(kāi)發(fā)框架,采用經(jīng)典的HML、CSS、JavaScript三段式開(kāi)發(fā)方式。使用HML標(biāo)簽文件進(jìn)行布局搭建,使用CSS文件進(jìn)行樣式描述,使用JavaScri
    發(fā)表于 01-18 19:15

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-聲明式開(kāi)發(fā)范式組件匯總

    組件是構(gòu)建頁(yè)面的核心,每個(gè)組件通過(guò)對(duì)數(shù)據(jù)和方法的簡(jiǎn)單封裝,實(shí)現(xiàn)獨(dú)立的可視、可交互功能單元。組件之間相互獨(dú)立,隨取隨用,也可以在需求相同的地方重復(fù)使用。聲明式開(kāi)發(fā)
    發(fā)表于 01-19 11:14

    方舟開(kāi)發(fā)框架新增開(kāi)源組件及其使用方法介紹

    /eTS開(kāi)發(fā)隊(duì)伍中,我們也收到不少開(kāi)發(fā)者對(duì)JS/eTS組件的需求。 在廣大組件貢獻(xiàn)者的共同努力
    的頭像 發(fā)表于 05-07 17:43 ?2874次閱讀
    方舟<b class='flag-5'>開(kāi)發(fā)</b>框架新增開(kāi)源<b class='flag-5'>組件</b>及其使用方法介紹

    OpenHarmony應(yīng)用開(kāi)發(fā)ETS開(kāi)發(fā)方式Image組件

    今天帶大家了解ETS開(kāi)發(fā)方式中的Image組件
    的頭像 發(fā)表于 07-03 12:06 ?3694次閱讀
    OpenHarmony應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>之<b class='flag-5'>ETS</b><b class='flag-5'>開(kāi)發(fā)</b>方式Image<b class='flag-5'>組件</b>

    鴻蒙開(kāi)發(fā)學(xué)習(xí):【ets_frontend組件

    ets_frontend組件采用命令行交互方式,支持將JavaScript代碼轉(zhuǎn)換為方舟字節(jié)碼文件,使其能夠在方舟運(yùn)行時(shí)上運(yùn)行。支持Windows/Linux/MacOS平臺(tái)。方舟前端工具在linux平臺(tái)上可通過(guò)全量編譯或指定編譯前端工具鏈獲取。
    的頭像 發(fā)表于 03-10 19:58 ?492次閱讀
    鴻蒙<b class='flag-5'>開(kāi)發(fā)</b>學(xué)習(xí):【<b class='flag-5'>ets</b>_frontend<b class='flag-5'>組件</b>】