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

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

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

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

基于HarmonyOS的ArkUI框架開發(fā)IQ- EQ測試應(yīng)用

HarmonyOS開發(fā)者 ? 來源:HarmonyOS開發(fā)者 ? 作者:HarmonyOS開發(fā)者 ? 2022-07-10 17:32 ? 次閱讀

開發(fā)者說】欄目是為HarmonyOS開發(fā)者提供的展示和分享平臺,在這里,大家可以發(fā)表自己的技術(shù)洞察和見解,也可以展示自己的開發(fā)心得和成果。

歡迎大家積極投稿,后臺回復(fù)【投稿】,即可獲得投稿渠道。期待你們的分享~


本期我們給大家?guī)淼氖情_發(fā)者Mack的分享,希望能給你的HarmonyOS開發(fā)之旅帶來啟發(fā)~


開發(fā)者M(jìn)ack基于HarmonyOS的ArkUI框架開發(fā)的IQ- EQ測試應(yīng)用。此應(yīng)用采用eTS語言開發(fā),包含啟動(dòng)頁面、測試入口頁面、答題頁面和得分頁面等多個(gè)頁面,功能非常完善。

IQ- EQ測試應(yīng)用的實(shí)現(xiàn)效果,請參考華為開發(fā)者論壇中作者的原帖:

https://developer.huawei.com/consumer/cn/blog/topic/03728323510050211

此應(yīng)用的開發(fā)過程中涉及很多知識點(diǎn),下面我們一起跟隨Mack的開發(fā)過程,一起學(xué)習(xí)eTS開發(fā)知識吧~

一、代碼結(jié)構(gòu)介紹

我們先來看看IQ- EQ測試應(yīng)用的文件目錄結(jié)構(gòu),相關(guān)文件說明如圖1所示。

e6442922-f203-11ec-ba43-dac502259ad0.png

圖1 文件目錄結(jié)構(gòu)


1. 此應(yīng)用的核心代碼文件(即eTS文件)均在/entry/src/main/ets目錄下,文件后綴為“.ets”。由圖1可知,eTS文件主要分為兩部分:
  • ets/default/module目錄下的eTS文件,用于定義IQ和EQ測試題目數(shù)據(jù)。
  • ets/default/pages目錄下的eTS文件,用于定義應(yīng)用的UI界面。
2. “resource”目錄為項(xiàng)目資源存放目錄,存放圖片資源和國際化字符串等。3. config.json為應(yīng)用的配置文件。eTS開發(fā)時(shí),需關(guān)注該文件中module對象的js標(biāo)簽內(nèi)容。
"js": [  {    "mode": {      "syntax": "ets",   //表示以聲明式語法風(fēng)格進(jìn)行編程      "type": "pageAbility"    },    "pages": [      "pages/index",   //“pages”列表的第一個(gè)頁面為應(yīng)用的啟動(dòng)頁      "pages/start",      "pages/iqTest",      "pages/iqScore",      "pages/eqTest",      "pages/eqScore"    ],    "name": "default",    "window": {      "designWidth": 720,      "autoDesignWidth": false    }  }]
(左右滑動(dòng),查看更多)


二、關(guān)鍵代碼及知識點(diǎn)

在開發(fā)IQ- EQ測試應(yīng)用的過程中,主要運(yùn)用了容器組件、裝飾器、頁面路由和AppStorage等。下面,我們就結(jié)合IQ- EQ測試應(yīng)用的關(guān)鍵代碼,一起來學(xué)習(xí)這些知識點(diǎn)。

1. 容器組件


方舟開發(fā)框架提供了豐富的系統(tǒng)預(yù)置組件。開發(fā)者可以組合系統(tǒng)組件為自定義組件,通過這種方式將頁面組件化為一個(gè)個(gè)獨(dú)立的UI單元,實(shí)現(xiàn)頁面不同單元的獨(dú)立創(chuàng)建、開發(fā)和復(fù)用。本次IQ- EQ測試應(yīng)用,通過對容器組件的組合使用,實(shí)現(xiàn)了多個(gè)頁面的UI布局。比如,EQ測試題目頁(對應(yīng)ets/default/pages/eqTest.ets文件)的部分布局代碼如下:
  build() {    Column() {      // 頂部標(biāo)題      TopTitle()      Scroll() {        Column() {          // 顯示問題列表          List() {            ForEach(this.questionsDataArray, item => {              ListItem() {                // 循環(huán)展示問題                QuestionsListItem({ questionItem: item,  questionsId:item.id,                  btnSubmit:$btnSubmit1})              }            }, item => item.id.toString())          }
(左右滑動(dòng),查看更多)


此應(yīng)用使用到的一些容器組件,說明如下:
  • Column:沿垂直方向布局的容器組件。
  • Row:沿水平方向布局的容器組件。
  • Scroll:可滾動(dòng)的容器組件,當(dāng)子組件的布局尺寸超過父組件的視口時(shí),內(nèi)容可以滾動(dòng)。
  • Grid:網(wǎng)格容器組件,采用二維布局,將容器劃分成“行”和“列”。
  • List:列表組件,包含一系列相同寬度的列表項(xiàng)。
  • Flex:彈性布局組件。
  • Stack:堆疊容器組件,子組件按照順序依次入棧,后一個(gè)子組件覆蓋前一個(gè)子組件。
更多組件說明,請參見:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-container-column-0000001111421414

2.裝飾器


方舟開發(fā)框架還定義了一些具有特殊含義的裝飾器,用于裝飾類、結(jié)構(gòu)、方法和變量。下面就結(jié)合本次IQ- EQ測試應(yīng)用,為大家介紹幾種常用的裝飾器。比如,啟動(dòng)頁(對應(yīng)ets/default/pages/index.ets文件)的代碼如下:
@Entry@Componentstruct Index {

  @State private opacityValue: number = 0  @State private scaleValue: number = 0

  build() {  }}
(左右滑動(dòng),查看更多)


以上代碼中涉及到了三種常用的裝飾器:@Component、@Entry、@State。


(1) @Component

開發(fā)者可以組合系統(tǒng)組件為自定義組件,通過這種方式將頁面組件化為一個(gè)個(gè)獨(dú)立的UI單元,實(shí)現(xiàn)頁面不同單元的獨(dú)立創(chuàng)建、開發(fā)和復(fù)用。

@Component是組件化的標(biāo)志。@Component裝飾的struct,表示該結(jié)構(gòu)體具有組件化能力,能夠成為一個(gè)獨(dú)立的組件,稱為自定義組件。自定義組件必須定義build方法,在build方法里描述UI結(jié)構(gòu)。

(2) @Entry

@Entry裝飾的自定義組件,表示該組件是頁面的總?cè)肟冢部梢岳斫鉃轫撁娴母?jié)點(diǎn)。加載頁面時(shí),將首先創(chuàng)建并呈現(xiàn)@Entry裝飾的自定義組件。值得注意的是,一個(gè)頁面有且僅能有一個(gè)@Entry,只有被@Entry修飾的組件或者其子組件,才會在頁面上顯示。

(3) @State

@State裝飾的變量是組件內(nèi)部的狀態(tài)數(shù)據(jù),當(dāng)這些狀態(tài)數(shù)據(jù)被修改時(shí),將會調(diào)用所在組件的build方法進(jìn)行UI刷新。

除了以上三種裝飾器,方舟開發(fā)框架還提供了@Prop、@Link、@Observed、@ObjectLink、@Consume、@Provide、@StorageProp、 @StorageLink、@Watch、@Preview、@Builder、@Extend、@CustomDialog等裝飾器。裝飾器的更多詳細(xì)內(nèi)容,盡在聲明式語法中。

聲明式語法的詳細(xì)介紹,請參見:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ts-syntax-intro-0000001149818707

3.頁面路由


IQ測試時(shí),答完一題后支持自動(dòng)跳轉(zhuǎn)到下一題,這里涉及頁面路由的操作。為方便開發(fā)者實(shí)現(xiàn)頁面路由的各種操作,HarmonyOS提供了多種頁面路由接口IQ測試題目頁(對應(yīng)ets/default/pages/iqTest.ets文件)中頁面路由的代碼如下:
import router from '@system.router';

router.push({  uri: 'pages/iqTest',  params: { paramCurrentId:(this.currentId + 1)}  // 自動(dòng)跳轉(zhuǎn)下一題})
(左右滑動(dòng),查看更多)


在調(diào)用頁面路由接口之前,先導(dǎo)入router模塊。然后,通過調(diào)用router.push()接口,將uri指定的頁面添加到路由棧中,即可實(shí)現(xiàn)跳轉(zhuǎn)到uri指定的頁面。


上面僅介紹了一種頁面路由接口。更多頁面路由接口的詳細(xì)說明,請參見:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-basic-features-routes-0000000000611824

4. AppStorage

AppStorage是整個(gè)UI應(yīng)用程序狀態(tài)的中心“數(shù)據(jù)庫”,包含整個(gè)應(yīng)用程序需要訪問的所有狀態(tài)屬性。AppStorage提供了相應(yīng)的裝飾器和接口供應(yīng)用程序使用。應(yīng)用程序的UI組件可以通過裝飾器將應(yīng)用程序狀態(tài)數(shù)據(jù)與AppStorage進(jìn)行同步。此外,應(yīng)用程序還可以通過AppStorage提供的接口添加、讀取、修改和刪除AppStorage中保存的應(yīng)用程序狀態(tài)屬性。API所做更改引起的狀態(tài)數(shù)據(jù)變更會被同步到UI組件上,應(yīng)用程序?qū){(diào)用所在組件的build方法進(jìn)行UI更新。

此IQ- EQ測試應(yīng)用也調(diào)用了AppStorage的接口來修改和刪除狀態(tài)屬性。(1) IQ測試時(shí),應(yīng)用程序?qū)⒚恳活}的選擇結(jié)果保存到AppStorage中。代碼如下:
// 點(diǎn)擊圖片表示選擇, 保存題目的選擇結(jié)果AppStorage.SetOrCreate("question_id_"+this.currentId,item.id)
(左右滑動(dòng),查看更多)


(2) IQ測試完成后,點(diǎn)擊“再測一遍”時(shí),應(yīng)用程序調(diào)用AppStorage的接口刪除所有題目的選擇結(jié)果。代碼如下:
AppStorage.Delete('question_id_'+item.id)
(左右滑動(dòng),查看更多)


AppStorage的更多詳情,請參見:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ts-application-states-appstorage-0000001119929480

三、結(jié)束語

上面介紹的eTS開發(fā)知識,你已經(jīng)學(xué)會了嗎?感興趣的小伙伴,可以獲取IQ- EQ測試應(yīng)用的完整代碼,繼續(xù)學(xué)習(xí)哦~

IQ- EQ測試應(yīng)用的源碼地址:https://gitee.com/mackyuan/IQ_EQ_Test_eTS


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    5375

    瀏覽量

    127059
  • 華為
    +關(guān)注

    關(guān)注

    216

    文章

    34532

    瀏覽量

    252998
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1982

    瀏覽量

    30574

原文標(biāo)題:想學(xué)習(xí)eTS開發(fā)?教你開發(fā)一款I(lǐng)Q-EQ測試應(yīng)用

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Vysper基于MINA網(wǎng)絡(luò)框架開發(fā)

    Vysper是一款服務(wù)器開發(fā)軟件,基于MINA網(wǎng)絡(luò)框架開發(fā)主要用于即時(shí)通訊,向App等客戶端推送消息的。
    發(fā)表于 07-16 07:36

    想學(xué)習(xí)eTS開發(fā)?教你開發(fā)一款IQ-EQ測試應(yīng)用

    開發(fā)者M(jìn)ack基于HarmonyOSArkUI框架開發(fā)IQ- EQ
    發(fā)表于 06-23 12:01

    4天帶你上手HarmonyOS ArkUI開發(fā)

    本次HarmonyOS ArkUI入門訓(xùn)練營課程--健康生活實(shí)戰(zhàn)篇,手把手教大家如何制作一個(gè)合理膳食的APP前端Demo!課程實(shí)戰(zhàn)樣例通過ArkUI聲明式UI開發(fā)
    發(fā)表于 09-09 14:44

    本周四晚19:00知識賦能第八期第1課丨ArkUI框架整體設(shè)計(jì)

    以通過WiFi接口開發(fā)出炫酷的WiFi應(yīng)用,而這一期的直播我們邀請到了資深 OS 框架開發(fā)工程師巴延興老師,從業(yè)以來就一致深耕終端設(shè)備的研發(fā)領(lǐng)域,擁有十多年的移動(dòng)系統(tǒng)開發(fā)經(jīng)驗(yàn),為大家講解Ark
    發(fā)表于 09-14 15:35

    ArkUI,更高效的框架設(shè)計(jì)

    ArkUI是一套用于構(gòu)建HarmonyOS應(yīng)用界面的UI開發(fā)框架,本期我們將從架構(gòu)設(shè)計(jì)上來聊聊ArkUI的設(shè)計(jì)理念。
    發(fā)表于 12-21 10:26

    4天帶你上手HarmonyOS ArkUI開發(fā)——《HarmonyOS ArkUI入門訓(xùn)練營之健康生活實(shí)戰(zhàn)》

    框架實(shí)現(xiàn)。ArkUI采用極簡的聲明式UI描述界面語法,只需用幾行簡單直觀的聲明式代碼,即可完成界面功能,內(nèi)置了豐富而精美HarmonyOS Design的UI組件和API,可滿足大部分跨端應(yīng)用界面
    發(fā)表于 01-05 11:49

    HarmonyOS測試技術(shù)與實(shí)戰(zhàn)-分布式UI測試框架

    HDC 2021華為開發(fā)者大會 HarmonyOS測試技術(shù)與實(shí)戰(zhàn)-分布式UI測試框架演示
    的頭像 發(fā)表于 10-23 14:49 ?1420次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>測試</b>技術(shù)與實(shí)戰(zhàn)-分布式UI<b class='flag-5'>測試</b><b class='flag-5'>框架</b>

    HarmonyOS測試技術(shù)與實(shí)戰(zhàn)-華為ArkUI開發(fā)框架和場景測試

    HDC 2021華為開發(fā)者大會HarmonyOS測試技術(shù)與實(shí)戰(zhàn)-華為ArkUI開發(fā)框架和場景
    的頭像 發(fā)表于 10-23 15:16 ?1944次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>測試</b>技術(shù)與實(shí)戰(zhàn)-華為<b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>框架</b>和場景<b class='flag-5'>測試</b>

    HarmonyOS ArkUI 3.0框架試玩初體驗(yàn)

    ?? HarmonyOS ArkUI 3.0?正式到來,今天就給大家分享一下我的 HarmonyOS ArkUI 3.0 框架試玩初體驗(yàn),以
    的頭像 發(fā)表于 11-01 14:53 ?2284次閱讀

    HarmonyOS ArkUI 3.0框架試玩初體驗(yàn)

    ?? HarmonyOS ArkUI 3.0?正式到來,今天就給大家分享一下我的 HarmonyOS ArkUI 3.0 框架試玩初體驗(yàn),以
    的頭像 發(fā)表于 12-03 10:14 ?3596次閱讀

    ArkUI,更高效的框架設(shè)計(jì)

    上期文章我們講到了ArkUI的三大特性,同時(shí)提到了ArkUI是一套用于構(gòu)建HarmonyOS應(yīng)用界面的UI開發(fā)框架,本期我們將從架構(gòu)設(shè)計(jì)上來
    的頭像 發(fā)表于 12-21 09:15 ?1671次閱讀

    使用platformio平臺和Arduino框架開發(fā)STM32G0

    使用platformio平臺和Arduino框架開發(fā)STM32G0,開發(fā)環(huán)境使用VSCode+PlatformIO插件;
    的頭像 發(fā)表于 01-17 11:05 ?4061次閱讀
    使用platformio平臺和Arduino<b class='flag-5'>框架開發(fā)</b>STM32G0

    ArkUI新能力,助力應(yīng)用開發(fā)更便捷

    管理,以及實(shí)時(shí)界面預(yù)覽等相關(guān)能力,幫助您提升應(yīng)用開發(fā)效率,并能在多種設(shè)備上實(shí)現(xiàn)生動(dòng)而流暢的用戶體驗(yàn)。隨著HarmonyOS 3.1版本的發(fā)布,ArkUI也新增許多能力,助力應(yīng)用開發(fā)更便
    的頭像 發(fā)表于 02-15 16:35 ?903次閱讀

    Hypium框架使能ArkTS應(yīng)用高效測試

    作者: leidan,軟件測試開發(fā)工程師? HarmonyOS發(fā)布了聲明式開發(fā)框架ArkUI,帶來了極簡高效的
    的頭像 發(fā)表于 03-11 13:10 ?1051次閱讀

    鴻蒙ArkUI-X框架開發(fā):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開發(fā)的初學(xué)者。通過環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解跨平臺項(xiàng)目開發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?519次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X<b class='flag-5'>框架開發(fā)</b>:【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】
    顶尖百家乐的玩法技巧和规则| 百家乐官网那个平台信誉高| 澳门百家乐家用保险柜| 隆安县| 百家乐百姓话题| 大发888足球开户| 百家乐官网博彩的玩法技巧和规则| 大发888娱乐城 手机版| 玩百家乐官网的高手| 大发888可靠吗| 一筒百家乐官网的玩法技巧和规则| 博彩e族字谜专区| 网上百家乐怎么破解| 全椒县| 致胜百家乐下载| 破解百家乐官网游戏机| 大发888出纳柜台登入| 大赢家百家乐官网娱乐| 博彩乐透乐| 南京百家乐的玩法技巧和规则| 钱隆百家乐官网软件| 德州扑克概率表| 哪个百家乐投注好| 百家乐官网三路秘诀| 大发888 娱乐免费游戏| 云鼎百家乐注册| 百家乐官网洗码| 大发888体育娱乐场| 七乐百家乐现金网| 关于百家乐官网切入点| 大发888游戏平台官方| 百家乐游戏如何玩| 百家乐官网赌场占多大概率| 德州扑克怎么算牌| 百家乐游戏机路法| 网页百家乐官网官网| 澳门威尼斯人| 威尼斯人娱乐官方| 百家乐官网打鱼秘| 百家乐官网电脑上怎么赌| 大发888送钱58元|