vue中的傳值及賦值問題
vue的傳值及賦值
作為Vue非資深的學(xué)習(xí)者,在工作中使用vue的時(shí)候還是遇見的很多所謂的坑,打算總結(jié)一下;就在昨天PM找到我,給我看了一個(gè)bug,很是頭疼的是,我看了半天代碼就是看不出有什么問題,但是實(shí)現(xiàn)起來就是報(bào)錯(cuò)。
先看一下場(chǎng)景
這是詳情頁的tab欄,這里的大概邏輯就是從別的頁面跳轉(zhuǎn)到詳情頁并且需要選中虛擬服務(wù)器組這個(gè)tab欄,代碼的邏輯是先獲取詳情頁信息Detail,然后把detail這個(gè)對(duì)象以props的形式傳遞給虛擬服務(wù)器組這個(gè)子組件
export default { props:['detail'], data(){ return { type: this.detail.type } }, methods: { XXX(){ } } }
我在這里多做了一步,就是講props里面的屬性賦值給了data里面的變量,但是如果我跳轉(zhuǎn)到詳情頁后立即轉(zhuǎn)到虛擬服務(wù)這個(gè)tab欄的時(shí)候,(此時(shí)會(huì)立即觸發(fā)XXX方法,并且會(huì)使用type這個(gè)變量),此時(shí)回報(bào)錯(cuò),就是type是未定義的?
解決方法
直接將props中的detail變量直接拿來使用,不需要賦值給data中的變量,就不會(huì)出現(xiàn)這種情況。
深層的原因不清楚,但是初步斷定是時(shí)間差的問題,在測(cè)試的時(shí)候發(fā)現(xiàn),這種bug不是必然復(fù)現(xiàn)的,時(shí)好時(shí)壞,直接使用的話避免了這個(gè)問題。
vue的賦值小技巧
嚴(yán)謹(jǐn)代碼
嚴(yán)謹(jǐn)性即健壯性,是指軟件對(duì)于規(guī)范要求以外的輸入情況的處理能力。所謂的系統(tǒng)是指對(duì)于規(guī)范要求以外的輸入能夠判斷出這個(gè)輸入不符合規(guī)范要求,并能有合理的處理方式。
另外健壯性有時(shí)也和容錯(cuò)性,可移植性,正確性有交叉的地方。
比如,一個(gè)軟件可以從錯(cuò)誤的輸入推斷出正確合理的輸入,這屬于容錯(cuò)性量度標(biāo)準(zhǔn),但是也可以認(rèn)為這個(gè)軟件是健壯的。
undefined判斷
JS 和 Vue中有兩個(gè)特殊數(shù)據(jù)類型:undefined 和 null,下節(jié)介紹了 null 的判斷,下面談?wù)?undefined 的判斷。
以下是不正確的用法:
var exp = undefined; if (exp == undefined) { alert(“undefined”); }
exp 為 null 時(shí),也會(huì)得到與 undefined 相同的結(jié)果,雖然 null 和 undefined 不一樣。注意:要同時(shí)判斷 undefined 和 null 時(shí)可使用本法。
var exp = undefined; if (typeof(exp) == undefined) { alert(“undefined”); }
以下是正確的用法:
var exp = undefined; if (typeof(exp) == “undefined”) { alert(“undefined”); }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue不同項(xiàng)目之間傳遞、接收參數(shù)問題
這篇文章主要介紹了Vue不同項(xiàng)目之間傳遞、接收參數(shù)問題,主要針對(duì)是登錄操作,我們?yōu)榱送瓿蒘SO(Single Sign On)的效果,認(rèn)證和授權(quán)在UC完成,用戶發(fā)起資源請(qǐng)求,服務(wù)網(wǎng)關(guān)會(huì)進(jìn)行過濾,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04一文詳解vue-router中的導(dǎo)航守衛(wèi)
vue-router提供的導(dǎo)航守衛(wèi)主要用來通過跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航,在 vue-router 中,導(dǎo)航守衛(wèi)是一種非常重要的功能,所以本文將詳細(xì)講解一下vue-router中的導(dǎo)航守衛(wèi),感興趣的同學(xué)跟著小編一起來看看吧2023-07-07vue+node+socket io實(shí)現(xiàn)多人互動(dòng)并發(fā)布上線全流程
這篇文章主要介紹了vue+node+socket io實(shí)現(xiàn)多人互動(dòng)并發(fā)布上線全流程,本文給大家提到了socket.io相關(guān)用法概覽及開發(fā)流程,需要的朋友可以參考下2021-09-09利用vue實(shí)現(xiàn)打印頁面的幾種方法總結(jié)
在項(xiàng)目里有個(gè)打印功能,將頁面的部分內(nèi)容打印出來,所以下面這篇文章主要給大家介紹了關(guān)于利用vue實(shí)現(xiàn)打印頁面的幾種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11vue?頂部消息橫向滾動(dòng)通知效果實(shí)現(xiàn)
系統(tǒng)頂部展示一個(gè)橫向滾動(dòng)的消息通知,就是消息內(nèi)容從右往左一直滾動(dòng),這篇文章主要介紹了vue頂部消息橫向滾動(dòng)通知,需要的朋友可以參考下2024-02-02