發(fā)布時間:2024-01-18 20:59:14 瀏覽量:181次
微信小程序云開發(fā)實戰(zhàn)-答題積分賽小程序
前面的那一篇文章,我們已經(jīng)完成了使用云開發(fā)的聚合能力實現(xiàn)從題庫中隨機抽取題目功能。
在頁面加載時,實現(xiàn)從題庫中隨機抽取題目功能。那么,拿到數(shù)據(jù)后要干什么?如何做?
實現(xiàn)動態(tài)數(shù)據(jù)綁定,其實,概括起來就三步走:
1)先通過 Collection.get 來獲取題庫集合里的題目數(shù)據(jù);
2)再使用setData函數(shù)將題目數(shù)據(jù)從邏輯層發(fā)送到視圖層;
3)再Mustache 語法(雙大括號)將變量包起來,實現(xiàn)動態(tài)數(shù)據(jù)綁定。
這里主要用到了radio-group組件,radio-group中選中項發(fā)生改變時觸發(fā) change 事件,detail = {value:[選中的radio的value的數(shù)組]}。
在radio-group使用bindchange綁定監(jiān)聽事件radioChange。
test.js定義監(jiān)聽函數(shù)radioChange。
// 選中選項事件
radioChange(e){
this.data.chooseValue[this.data.index] = e.detail.value;
},
在組件中綁定一個事件處理函數(shù),如bindtap,當用戶點擊該組件的時候會在該頁面對應(yīng)的Page中找到相應(yīng)的事件處理函數(shù)。
<button bindtap='okFunc' class="cu-btn lg round bg-sky">確定</button>
在相應(yīng)的Page定義中寫上相應(yīng)的事件處理函數(shù),參數(shù)是event。
okFunc(){
// 如果沒有選擇
if (this.data.chooseValue[this.data.index] == undefined || this.data.chooseValue[this.data.index].length == 0) {
return wx.showToast({
title: '請選擇答案!',
icon: 'none'
})
}
// 判斷所選擇的選項是否為正確答案
this.chooseJudge();
this.setData({
isOk: true
})
},
// 判斷所選擇的選項是否為正確答案
chooseJudge(){
var trueValue = this.data.questionList[this.data.index]['true'];
var chooseVal = this.data.chooseValue[this.data.index];
if (chooseVal.toString() != trueValue.toString()) {
// 答錯則記錄錯題
this.data.wrong++;
this.data.wrongListSort.push(this.data.index);
this.data.wrongList.push(this.data.questionList[this.data.index]._id);
}else{
// 答對則累計總分
this.setData({
totalScore: this.data.totalScore + this.data.questionList[this.data.index]['scores']
})
}
},
在答題完畢后,實時計算成績并更新所獲得積分到用戶答題總積分,也就是累加。
關(guān)鍵代碼解讀:
// 實時更新用戶的答題積分
updateIntegration(){
// 連接云數(shù)據(jù)庫
const db = wx.cloud.database();
// 獲取集合的引用
const user = db.collection('user');
// 數(shù)據(jù)庫操作符,通過 db.command 獲取
const _ = db.command;
user
.doc(this.data.id) // 獲取集合中指定記錄的引用。方法接受一個 id 參數(shù),指定需引用的記錄的 _id。
.update({ // 發(fā)起更新請求
data: {
score: _.inc(this.data.score) // 更新操作符,原子操作,用于指示字段自增
}
}).then(res => {
})
},
至此,已經(jīng)實現(xiàn)了完整的答題交互邏輯以及功能,也就是整個答題頁面的答題環(huán)節(jié)已經(jīng)具備前后端以及數(shù)據(jù)庫能力。云開發(fā)能力,真的極大地提升了開發(fā)效率。據(jù)我搭建過的網(wǎng)絡(luò)安全知識答題、交通安全答題、 消防安全知識宣傳、 安全生產(chǎn)知識學(xué)習、學(xué)法普法、五四青年節(jié)等答題活動或有獎競答等應(yīng)用,進行整理總結(jié)并分享,希望對大家有幫助。
熱門資訊
1. iPhone6的UI設(shè)計尺寸規(guī)范,原來如此重要!
想要了解iPhone6界面設(shè)計的尺寸規(guī)范嗎?這里為您詳細介紹iPhone6的UI設(shè)計尺寸規(guī)范,包括界面尺寸、圖標尺寸、可點擊高度規(guī)范、搜索欄高度規(guī)范以及界面元素之間的距離規(guī)范。
2. 12個絕佳的UI設(shè)計網(wǎng)站,助力你的創(chuàng)作之旅!
將為大家介紹12個絕佳的UI設(shè)計網(wǎng)站,這些網(wǎng)站不僅可以為你提供靈感,還可以幫助你學(xué)習新的技巧,助力你的創(chuàng)意之旅!dribbbleDribbble 是一個面向設(shè)計師的...
3. 移動端UI設(shè)計中常見的5種APP界面類型,你get到了嗎?
通過介紹移動端UI設(shè)計中的閃屏頁、引導(dǎo)頁、浮層引導(dǎo)頁、空白頁和首頁等5種APP界面類型,幫助大家更好地了解UI設(shè)計的基本知識
4. 10個免費學(xué)習UI設(shè)計的網(wǎng)站 提升你的設(shè)計能力
怎樣可以提升你的UI設(shè)計能力!第一個:站酷站酷想必是設(shè)計師都知道的一個網(wǎng)站,里面不止有UI設(shè)計的資源,還有其他設(shè)計的,不如:平面設(shè)計、網(wǎng)頁設(shè)計、字體...
5. 移動端列表頁和表單頁設(shè)計秘訣:讓你的APP點擊率翻倍
在移動端設(shè)計中,列表頁和表單頁是不可或缺的部分。一個好的列表頁和表單頁設(shè)計能夠讓用戶輕松地獲取信息并產(chǎn)生點擊欲望,從而提高點擊率。本文將為你...
6. 推薦10本適合UI設(shè)計師看的書籍,輕松掌握技能!
對于想要提高自己的設(shè)計能力和創(chuàng)造力的小白和UI設(shè)計師來說,這本書是一個很好的選擇。4.《設(shè)計的覺醒》(IKKO TANAKA)推薦理由: 這本書是日本現(xiàn)代平面...
7. 零基礎(chǔ)學(xué)UI設(shè)計要多久?培訓(xùn)完能拿多少工資?
探索零基礎(chǔ)UI設(shè)計培訓(xùn)的時長與薪資前景。了解數(shù)字藝術(shù)教育領(lǐng)域的專業(yè)課程,以及培訓(xùn)后的職業(yè)發(fā)展機會。
8. 物聯(lián)網(wǎng)APP UI設(shè)計:創(chuàng)造智能硬件領(lǐng)域的沉浸式體驗
ui設(shè)計應(yīng)該讓用戶一目了然,能夠快速找到所需的信息和功能。在設(shè)計過程中,應(yīng)盡量使用簡潔的圖標、文字和色彩,避免過多的視覺干擾。符合用戶習慣:ui設(shè)...
9. 設(shè)計中的色彩心理學(xué):淺析中西方色彩的歷史演變與設(shè)計應(yīng)用
摘要:本文探討了色彩的歷史演變和設(shè)計應(yīng)用。通過對色彩在早期文明社會中的實用運用、不同文化背景下色彩觀念的差異、色彩在設(shè)計中的重要性以及新興技...
10. 武漢UI設(shè)計培訓(xùn)班費用怎么樣?想學(xué)UI設(shè)計要多少錢?
想了解武漢UI設(shè)計培訓(xùn)班的費用是多少嗎?不知道學(xué)UI設(shè)計要花多少錢?不妨看看這篇文章,了解UI設(shè)計培訓(xùn)班的學(xué)費價格以及學(xué)習內(nèi)容。
最新文章
同學(xué)您好!