vue mounted 調(diào)用兩次的完美解決辦法
在開發(fā)中發(fā)現(xiàn)其中一個(gè)頁面moutned調(diào)用了兩次,而其他頁面正常,表示很懵逼,然后查找原因,終于找到了,其實(shí)歸根到底是要知道m(xù)ounted的調(diào)用機(jī)制問題;
情況:在這個(gè)頁面中出現(xiàn)了mounted 加載了兩次的情況;
方法:排除法
首先把 this.$store.commit()
方法注釋掉,發(fā)現(xiàn)就好了,只加載一次
初步判斷是commit 方法導(dǎo)致的
二 驗(yàn)證判斷是否正確,不使用commit 方法,該用直接改變變量狀態(tài)的方法,發(fā)現(xiàn)又加載了兩次;
再次判斷,不是由于commit引起的
三 猜想commit到底實(shí)現(xiàn)了什么邏輯,然后找到了v-if
v-if會(huì)重新渲染頁面,而mounted 又是在重新渲染完成之后調(diào)用的,所以猜想是v-if導(dǎo)致的
然后換成v-show 發(fā)現(xiàn)完美解決問題;
v-show 不會(huì)重新加載頁面,僅僅是顯示隱藏而已;
從網(wǎng)上找來的生命周期圖,各位網(wǎng)友可以了解一下,希望給你帶來一些啟發(fā);
PS:下面看下mounted函數(shù)調(diào)用技巧
為了確保dom成功渲染,利用setTimeout()
mounted() { setTimeout(() => { this._setSliderWidth() this._initDots() this._initSlider() if (this.autoPlay) { this._play() } }, 20)}
瀏覽器的刷新通常是17毫秒一次,所以這里用了20毫秒
總結(jié)
以上所述是小編給大家介紹的vue mounted 調(diào)用兩次的完美解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
vue.js實(shí)例todoList項(xiàng)目
本篇文章主要介紹了vue.js實(shí)例todoList項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07用vue設(shè)計(jì)一個(gè)數(shù)據(jù)采集器
這篇文章主要介紹了如何用vue設(shè)計(jì)一個(gè)數(shù)據(jù)采集器,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決
這篇文章主要介紹了Vue項(xiàng)目中使用setTimeout存在的潛在問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01vue實(shí)現(xiàn)一個(gè)單獨(dú)的組件注釋
這篇文章主要介紹了vue實(shí)現(xiàn)一個(gè)單獨(dú)的組件注釋,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue2 中使用 render 函數(shù)編寫組件的方式
vue提供了聲明式編寫UI的方式,即vue提供了對(duì)DOM進(jìn)行描述的方式,有兩種描述DOM的方式即模板和render 函數(shù),本文通過示例代碼介紹vue2 中使用 render 函數(shù)編寫組件的方式,感興趣的朋友跟隨小編一起看看吧2024-06-06vue+elementUI動(dòng)態(tài)增加表單項(xiàng)并添加驗(yàn)證的代碼詳解
這篇文章主要介紹了vue+elementUI動(dòng)態(tài)增加表單項(xiàng)并添加驗(yàn)證的代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12基于Vue實(shí)現(xiàn)頁面切換左右滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于Vue實(shí)現(xiàn)頁面切換左右滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Vue結(jié)合leaflet實(shí)現(xiàn)克里金插值
本文主要介紹了Vue結(jié)合leaflet實(shí)現(xiàn)克里金插值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06