


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第vue+swiper實(shí)現(xiàn)左右滑動的測試題功能最近在做一個測試題,前后可以切換題目,點(diǎn)擊按鈕選擇答案,選擇答案的同時改變按鈕的背景色,如下圖所示:
初始代碼
我用了vue和swiper。所有的題目是一個對象數(shù)組,通過v-for渲染:
swiperref=mySwiper:options=swiperOptions
swiper-slidev-for=(item,index)inlistData:key=index
div>
一開始我把每道題目的answer存放在對象里面,點(diǎn)擊的按鈕時候切換answer的值,button的動態(tài)class監(jiān)聽到值改變后會引發(fā)背景色的改變。js部分:
goNext(index,answer){
this.$set(this.listData[index],answer,answer)
this.swiper.slideNext(100)
},
發(fā)現(xiàn)問題
測試發(fā)現(xiàn)這樣把點(diǎn)擊事件和動態(tài)樣式互相依賴,會造成大概幾百毫秒的延遲才執(zhí)行slideNext(),是可以直觀感受到的延遲。通過調(diào)試,發(fā)現(xiàn)造成延遲有兩方面的原因:
this.$set更改數(shù)組執(zhí)行完點(diǎn)擊事件到動態(tài)class監(jiān)聽到數(shù)據(jù)的改變中間也有延遲。
于是我換了一個思路,不把每個題目的answer放在對像數(shù)組里面,而是在data里面定義一個answerMap,這樣解決了問題1。為了解決問題2,我選擇把動態(tài)樣式:class去掉,改成用原生js在點(diǎn)擊事件里面直接修改class。這樣兩步下來,確實(shí)看不到延遲了。
優(yōu)化后的代碼
html部分
button@click=goNext($event,index,a)是/button
button@click=goNext($event,index,b)否/button
js部分
goNext(e,index,answer){
constelement=e.target
constbro=element.parentNode.children
for(leti=0;ibro.length;i++){
if(bro[i]!==element){
bro[i].classList.remove(active)
element.classList.add(active)
this.answerMap[this.listData[index].question]=answer
this.swiper.slideNext(100)
},
測試結(jié)果:可喜可賀,slideNext()不再有肉眼可見的延遲了。
有的時候為了少寫點(diǎn)代碼,不知不覺犧牲了性能。這次實(shí)踐,雖然原生JS使我增加了好幾行代碼,但是帶來的性能提升也是非常明顯的。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦產(chǎn)資源管理與利用考核試卷
- 石膏在光伏支架制造中的應(yīng)用考核試卷
- 室內(nèi)設(shè)計公裝方案
- 2025年初級銀行從業(yè)資格之初級風(fēng)險管理能力提升試卷B卷附答案
- 2019-2025年統(tǒng)計師之初級統(tǒng)計基礎(chǔ)理論及相關(guān)知識題庫練習(xí)試卷A卷附答案
- 幼兒園大班社會《服裝的由來》
- 狼文化課件教學(xué)課件
- 2025年不見面審批項目發(fā)展計劃
- 小學(xué)選??荚囋囶}及答案
- 北京公務(wù)員面試題及答案
- 大國兵器學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- DB35T 2212-2024消防遠(yuǎn)程監(jiān)控系統(tǒng)技術(shù)要求
- 班級音樂會主題班會
- 東亞飛蝗標(biāo)準(zhǔn)化養(yǎng)殖示范基地建設(shè)項目可行性實(shí)施報告
- 抖音本地生活商家直播培訓(xùn)
- 陜西省2024年中考地理試卷(附解析)
- 新版高中物理必做實(shí)驗?zāi)夸浖捌鞑?(電子版)
- (正式版)QC∕T 625-2024 汽車用涂鍍層和化學(xué)處理層
- 河南省鄭州市新鄭市2023-2024學(xué)年八年級下學(xué)期期末英語試題(無答案)
- 2023北京順義區(qū)招錄鄉(xiāng)村振興協(xié)理員及考察筆試歷年典型考題及考點(diǎn)剖析附答案帶詳解
- 中國慢性冠脈綜合征患者診斷及管理指南2024版解讀
評論
0/150
提交評論