Vue中 v-if/v-show/插值表達式導致閃現(xiàn)的原因及解決辦法
在開發(fā)過程中經(jīng)常會發(fā)現(xiàn)當頁面明明不應該出現(xiàn)的元素或內(nèi)容會閃現(xiàn)一下然后消失,最近研究了一下這個問題的原因和解決辦法,這里和大家分享一下。
1.閃現(xiàn)的原因
這個問題是因為Vue要等到HTML DOM加載完成后才會執(zhí)行JS的編譯,所以對使用的指令如 v-if , v-show 或者使用了插值表達式 {{}} 都會出現(xiàn)閃現(xiàn)的情況。因為在這些判斷條件或表達式執(zhí)行之前,DOM已經(jīng)渲染出來了,之后Vue才會執(zhí)行相應的JS代碼。
2.解決的辦法
其實在了解了原因之后我們就有了大概的思路,既然是在JS執(zhí)行之前會出現(xiàn),那就讓元素在JS執(zhí)行之前都保持不顯示就好了。那事情就分為兩步:
- 選擇在JS執(zhí)行前要隱藏的元素
- 添加display:none樣式
如何只定位JS執(zhí)行前的元素呢?Vue有一個指令 v-cloak ,它的特殊之處在于 保持在元素上直到關聯(lián)實例結束編譯 。就是說這個屬性會一直在元素上,直到編譯結束。只需要在需要隱藏的元素上增加 v-cloak 指令即可。

接下來在CSS中定義隱藏樣式即可:

到這里,這個問題就解決了。Vue是前端技術的一次大的躍進,有坑并不可怕,相信辦法總比問題多。
總結
以上所述是小編給大家介紹的Vue中 v-if/v-show/插值表達式導致閃現(xiàn)的原因及解決辦法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
Vue數(shù)據(jù)監(jiān)聽器watch和watchEffect的使用
今天我們來學習一下watch監(jiān)聽器和它的好兄弟watchEffect監(jiān)聽器。這個相對來說比較簡單,用的不是很多,當然了,根據(jù)自己的項目情況自行決定使用,希望對大家有所幫助2023-02-02
vue+element+oss實現(xiàn)前端分片上傳和斷點續(xù)傳
這篇文章主要介紹了vue+element+oss實現(xiàn)前端分片上傳和斷點續(xù)傳,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
淺析Vue3中Excel下載模板并導入數(shù)據(jù)功能的實現(xiàn)
這篇文章主要為大家詳細介紹了Vue3中的Excel數(shù)據(jù)管理,即下載模板并導入數(shù)據(jù)功能的實現(xiàn),文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下2024-05-05

