記錄vue項(xiàng)目中遇到的一點(diǎn)小問(wèn)題
1、鼠標(biāo)懸浮顯示不同的背景圖片,代碼如下:
效果如圖,頁(yè)面初始效果:
鼠標(biāo)懸浮后效果:
2、for 循環(huán)發(fā)送axios遇到的問(wèn)題 問(wèn)題背景:
在聲動(dòng)語(yǔ)商項(xiàng)目中,需求更改后,出現(xiàn)一個(gè):教師發(fā)布課程的時(shí)候要求一個(gè)課程同時(shí)發(fā)送給多個(gè)班級(jí)。
現(xiàn)在的接口:每次只能發(fā)送一個(gè)班級(jí)的id,也就是:classesId字段只能傳一個(gè)班級(jí)的id,因此為了滿(mǎn)足這個(gè)新需求就想著:將select修改為多選,使用for循環(huán)循環(huán)用戶(hù)選中的班級(jí)數(shù)組,使用axios發(fā)送創(chuàng)建課程請(qǐng)求。更改后的界面如下圖所示:
問(wèn)題復(fù)現(xiàn):
思路:使用for循環(huán),發(fā)送axios,發(fā)現(xiàn)請(qǐng)求發(fā)送的data中classesId總是最后一個(gè),立馬想到了閉包,以為是閉包問(wèn)題,于是使用
這種方法想著解決下閉包,重新發(fā)送axios請(qǐng)求發(fā)現(xiàn)classesId數(shù)據(jù)還是不對(duì)。然后自我懷疑,以為自己寫(xiě)的閉包是不是有啥問(wèn)題....
于是使用了第三方lodash的forEach方法一下,將axios請(qǐng)求寫(xiě)到了foreach里面,重新運(yùn)行還是發(fā)現(xiàn)不對(duì)。。。。
以為this指向有問(wèn)題,有將this重新賦值,結(jié)果:還是一樣。。。。。。。
于是又調(diào)整了一下代碼:將axios請(qǐng)求重新封裝出去,重新在for循環(huán)里面調(diào)用,結(jié)果:還是不對(duì)
打斷點(diǎn)發(fā)現(xiàn)for循環(huán)出來(lái)的classesId數(shù)據(jù)是對(duì)的,但是加上axios請(qǐng)求,每次請(qǐng)求發(fā)送的classesId還只是最后一個(gè)的
又想著是不是axios的異步請(qǐng)求影響的,于是將axios改為了同步請(qǐng)求,結(jié)果:還是一樣,這個(gè)時(shí)候,整個(gè)人就有點(diǎn)不好了。。。。
眼看著快要下班了,而這個(gè)問(wèn)題已經(jīng)看了一下午還沒(méi)有解決,就很著急啊啊啊啊
努力回想自己曾經(jīng)這樣請(qǐng)求過(guò)啊,當(dāng)時(shí)并沒(méi)有發(fā)生任何不對(duì)。于是想著將請(qǐng)求的數(shù)據(jù)簡(jiǎn)化一下,就將發(fā)送的data數(shù)據(jù)簡(jiǎn)化到了只有classesId,想著只有一個(gè)數(shù)據(jù)了,就沒(méi)有再定義任何的變量,直接將數(shù)據(jù)寫(xiě)到了axios請(qǐng)求內(nèi)部。運(yùn)行發(fā)現(xiàn):classesId竟然是對(duì)的。。。。于是立馬將其他數(shù)據(jù)都寫(xiě)到了axios請(qǐng)求內(nèi)容,發(fā)現(xiàn)結(jié)果對(duì)了,天啊,終于看到了希望。。。。
問(wèn)題原因:
將這兩種數(shù)據(jù)的定義及發(fā)送方式對(duì)比,分析問(wèn)題可能是因?yàn)?js賦值的深拷貝和淺拷貝造成的。。。
其他
解決過(guò)程中還試了watch監(jiān)聽(tīng)for循環(huán)classesId的變化,發(fā)現(xiàn)也只能監(jiān)聽(tīng)獲取到最后一個(gè)classesId.,并不能解決這個(gè)問(wèn)題
相關(guān)文章
JavaScript獲取echart曲線上任意點(diǎn)位的值詳解
這篇文章主要為大家介紹了JavaScript獲取echart曲線上任意點(diǎn)位的值詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Vue中.prettierrc文件的常見(jiàn)配置(淺顯易懂)
這篇文章主要介紹了Vue中.prettierrc文件的常見(jiàn)配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07簡(jiǎn)單談?wù)刅ue 模板各類(lèi)數(shù)據(jù)綁定
Vue.js 的模板是基于 DOM 實(shí)現(xiàn)的。這意味著所有的 Vue.js 模板都是可解析的有效的 HTML,且通過(guò)一些特殊的特性做了增強(qiáng)。Vue 模板因而從根本上不同于基于字符串的模板,請(qǐng)記住這點(diǎn)。2016-09-09Vuejs在v-for中,利用index來(lái)對(duì)第一項(xiàng)添加class的方法
下面小編就為大家分享一篇Vuejs在v-for中,利用index來(lái)對(duì)第一項(xiàng)添加class的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03