v-if 和 v-show 的區別css
v-if只會在知足條件時纔會編譯,而v-show無論是否知足條件始終會編譯,v-show的顯示與隱藏只是簡單的切換CSS的display屬性。html
也就是說,在使用v-if時,若值爲false,那麼頁面將不會有這個html標籤生成。而v-show:不論其值是false仍是true,html元素都會存在,只是簡單的切換css的display屬性。vue
使用場景後端
通常來講,v-if 有更高的切換消耗而 v-show 有更高的初始渲染消耗。所以,若是須要頻繁切換 v-show 較好,若是在運行時條件不大可能改變 v-if 較好。 babel
另外性能
1.v-if 指令能夠應用於template包裝元素上,而v-show不支持template動畫
2.將v-show應用在組件上時,由於指令的優先級 v-else 會出現問題,解決辦法就是用另外一個 v-show 替換 v-else網站
1this 2spa 3 4 5 6 |
|
解決vue頁面加載時出現{{message}}閃退
方法一:v-cloak
v-cloak指令和css規則如[v-cloak]{display:none}一塊兒用時,這個指令能夠隱藏未編譯的Mustache標籤直到實例準備完畢。
v-cloak 指令能夠像css選擇器同樣綁定一套css樣式而後這套css會一直生效到實例編譯結束。
1 2 3 4 5 6 7 8 |
|
方法二:v-text
vue中咱們會將數據包在兩個大括號中,而後放到HTML裏,可是在vue內部,全部的雙括號會被編譯成textNode的一個v-text指令。
而使用v-text的好處就是永遠更好的性能,更重要的是能夠避免FOUC (Flash of Uncompiled Content) ,也就是上面與遇到的問題。
1 2 3 4 |
|
補充:
vue 頁面加載進度條組件
頁面加載進度條最初我是在youtube上看到的,後面幾乎在各大網站上都能見到它的身影,可讓用戶在加載頁面的時候不會對着徹底空白的頁面發呆,提高用戶體驗
可是從開發角度講,這種進度條在真實性上確實很難把握,由於在邏輯代碼加載完成以前,咱們都不能統計到進度,而邏輯代碼自身的進度也沒法統計。另外,咱們不可能監控到全部資源的加載狀況。
事實上,用戶並非在意你的頁面究竟加載了百分之幾,而真正關心的是離加載完還有多久,以及這個空白頁面是沒有加載完,仍是加載完就是空白的。因此沒咱們須要去「模擬」一個進度條,在後端數據返回前利用一個假的動畫效果模擬加載,在數據返回後讀完進度條而且隱藏。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
|