最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue渲染時閃爍{{}}的問題及解決方法

 更新時間:2018年03月28日 10:14:40   作者:zhalcie2011  
v-if和v-show可能是日常開發(fā)中最常用的兩個指令,雖然看上去兩者功能是類似的,但是兩者還是存在很大區(qū)別的。接下來通過本文給大家分享vue渲染時閃爍{{}}的問題及解決方法,感興趣的朋友一起看看吧

v-if和v-show可能是日常開發(fā)中最常用的兩個指令,雖然看上去兩者功能是類似的,但是兩者還是存在很大區(qū)別的。

 v-if與v-show區(qū)別:

在切換 v-if 塊時,Vue.js 有一個局部編譯/卸載過程,因為 v-if 之中的模板也可能包括數(shù)據(jù)綁定或子組件。v-if 是真實的條件渲染,因為它會確保條件塊在切換當中合適地銷毀與重建條件塊內(nèi)的事件監(jiān)聽器和子組件。

v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——在條件第一次變?yōu)檎鏁r才開始局部編譯(編譯會被緩存起來)。

相比之下,v-show 簡單得多——元素始終被編譯并保留,只是簡單地基于 CSS 切換。

簡單來說二者最大的區(qū)別是v-if只會在滿足條件時才會編譯,而v-show不管是否滿足條件始終會編譯,v-show的顯示與隱藏只是簡單的切換CSS的display屬性。

 適用場景:

明白了二者的本質(zhì)區(qū)別后什么時候適合用v-if什么時候用v-show也變得簡單了。

一般來說,v-if 有更高的切換消耗而 v-show 有更高的初始渲染消耗。因此,如果需要頻繁切換 v-show 較好,如果在運行時條件不大可能改變 v-if 較好。

比如說現(xiàn)在很多頁面在不同端表現(xiàn)是不同的,最常見的是很多的APP頁面在微信端打開時頁面上會顯示下載的提示,而在APP內(nèi)部則不會,像這樣的情況每個端的狀態(tài)在加載時就是確定的不會變的就適合用v-if,這樣在APP內(nèi)打開時顯示下載的部分直接就不會編譯。

而像頁面上元素根據(jù)不同條件顯示/隱藏這樣的地方用v-show是最合適的了,因為像這種基本上兩個狀態(tài)要頻繁切換,如上面所說,v-show的切換消耗是小于v-if的。

 多條件

很多時候代碼中需要多條件判斷,但是vue中只有v-if和v-else,沒有v-elseif這樣的指令。雖然沒有類似的指令,但依舊還是有幾種方法可以解決這個問題。

 方法一:template

<div v-if="xxx"></div>
<template v-else>
<div v-if="yyy"></div>
<div v-else></div>
</template>

 方法二:partical

元素是已注冊的 partial 的插槽,partial 在插入時被 Vue 編譯。 元素本身會被替換。 元素需要指定 name 特性。

這貨讓人想起javaScript原生的fragement元素,但卻不是一個東西。partial有靜態(tài)和動態(tài)之分,而要解決上面的問題就要用到動態(tài)partial。

示例:

// 注冊 partial
Vue.partial('my-partial', '<p>This is a partial! {{msg}}</p>')
<!-- 靜態(tài) partial -->
<partial name="my-partial"></partial>
<!-- 動態(tài) partial -->
<!-- 渲染 partial,id === vm.partialId -->
<partial v-bind:name="partialId"></partial>

要解決多個條件的問題,我們就可以為每種情況預先注冊好各自的partial,然后將partial的name屬性綁定到判斷條件,這樣就能實現(xiàn)多個條件判斷。

 其他:

1.v-if指令可以應(yīng)用于template包裝元素上,而v-show不支持templete

2.將v-show應(yīng)用在組件上時,因為指令的優(yōu)先級 v-else 會出現(xiàn)問題,解決辦法就是用另一個 v-show 替換 v-else

官方給出的示例如下:

// 錯誤
<custom-component v-show="condition"></custom-component>
<p v-else>這可能也是一個組件</p>
// 正確做法
<custom-component v-show="condition"></custom-component>
<p v-show="!condition">這可能也是一個組件</p>

Vue頁面加載時v-show設(shè)置的隱藏元素出現(xiàn)導致頁面閃爍問題

在寫APP社區(qū)頁面的時候在一些地方用了v-show,在刷新頁面的時候就發(fā)現(xiàn)即便在邏輯判斷為false某些元素不該顯示時也會露個臉,一閃而過,元素快小還好,如果是特別大的地方就看起來就很不爽,于是就上網(wǎng)搜了下看有沒有解決方法,結(jié)果還真有。

 方法一: v-cloak

官方的解釋就一句話:這個指令保持在元素上直到關(guān)聯(lián)實例結(jié)束編譯。

 光看這句話一頭霧水,后面緊接著說了用法:

和 CSS 規(guī)則如 [v-cloak] { display: none } 一起用時,這個指令可以隱藏未編譯的 Mustache 標簽直到實例準備完畢。

也就是說v-cloak指令可以像CSS選擇器一樣綁定一套CSS樣式然后這套CSS會一直生效到實例編譯結(jié)束。

 示例代碼:

// <div> 不會顯示,直到編譯結(jié)束。
[v-cloak] {
display: none;
}
<div v-cloak>
{{ message }}
</div> 

 方法二: v-text

vue中我們會將數(shù)據(jù)包在兩個大括號中,然后放到HTML里,但是在vue內(nèi)部,所有的雙括號會被編譯成textNode的一個v-text指令。

 而使用v-text的好處就是永遠更好的性能,更重要的是可以避免FOUC (Flash of Uncompiled Content) ,也就是上面與遇到的問題。

示例代碼:

<span v-text="msg"></span>
<!-- same as -->
<span>{{msg}}</span> 

總結(jié)

以上所述是小編給大家介紹的vue渲染時閃爍{{}}的問題及解決方法 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue2和vue3組件v-model區(qū)別詳析

    vue2和vue3組件v-model區(qū)別詳析

    v-model通常用于input的雙向數(shù)據(jù)綁定,它并不會向子組件傳遞數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于vue2和vue3組件v-model區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Vue2.0 從零開始_環(huán)境搭建操作步驟

    Vue2.0 從零開始_環(huán)境搭建操作步驟

    下面小編就為大家?guī)硪黄猇ue2.0 從零開始_環(huán)境搭建操作步驟。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • vue中關(guān)于redirect(重定向)初學者的坑

    vue中關(guān)于redirect(重定向)初學者的坑

    這篇文章主要介紹了vue中關(guān)于redirect(重定向)初學者的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue-cli V3.0版本的使用詳解

    vue-cli V3.0版本的使用詳解

    這篇文章主要介紹了vue-cli V3.0版本的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue如何將導航欄、頂部欄設(shè)置為公共頁面

    vue如何將導航欄、頂部欄設(shè)置為公共頁面

    這篇文章主要介紹了vue如何將導航欄、頂部欄設(shè)置為公共頁面問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue-cli webpack 引入swiper的操作方法

    vue-cli webpack 引入swiper的操作方法

    今天小編就為大家分享一篇vue-cli webpack 引入swiper的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue3使用Facebook嵌入式視頻播放器API方法詳解

    vue3使用Facebook嵌入式視頻播放器API方法詳解

    這篇文章主要為大家介紹了vue3使用Facebook嵌入式視頻播放器API方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • vue引入swiper插件的使用實例

    vue引入swiper插件的使用實例

    本篇文章主要介紹了vue引入swiper插件的使用實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue實現(xiàn)記事本案例

    vue實現(xiàn)記事本案例

    這篇文章主要為大家詳細介紹了vue實現(xiàn)記事本案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用Vue3+ElementPlus前端實現(xiàn)分片上傳的全過程

    使用Vue3+ElementPlus前端實現(xiàn)分片上傳的全過程

    ElementPlus是一套為開發(fā)者、設(shè)計師和產(chǎn)品經(jīng)理準備的基于Vue?3.0的組件庫,提供了配套設(shè)計資源,幫助你的網(wǎng)站快速成型,下面這篇文章主要給大家介紹了關(guān)于使用Vue3+ElementPlus前端實現(xiàn)分片上傳的相關(guān)資料,需要的朋友可以參考下
    2022-11-11

最新評論

关岭| 南川市| 麻江县| 观塘区| 木里| 盖州市| 敦化市| 鹤山市| 修水县| 永春县| 扶余县| 永寿县| 綦江县| 利辛县| 神木县| 色达县| 金湖县| 冕宁县| 淮南市| 天祝| 惠东县| 正镶白旗| 碌曲县| 巫溪县| 太保市| 蓝山县| 阿合奇县| 射洪县| 杭锦旗| 三门县| 和硕县| 双辽市| 邹城市| 富川| 顺昌县| 汉阴县| 买车| 和顺县| 同江市| 龙江县| 余干县|