Vue之v show和v if的區別

2021-10-08 08:33:32 字數 1719 閱讀 2897

1. 問題描述

在校驗資料完整性的時候,如果用v-show那麼rules中加入了校驗,使用v-show=「false」 隱藏顯示,提交時頁面還是會做校驗,以至於不能將資料提交到後台,如果使用v-if=「false」可以解決此問題。

2. 二者區別

v-if和v-show具有類似的功能,不過v-if才是真正的條件渲染,它會根據表示式是適當地銷毀或重建元素及繫結的事件或子元件。若表示式初始值為false。則一開始元素/元件並不會渲染,只有當條件第一次變為真時才開始編譯。而 v-show 只是簡單的css屬性切換,無論條件真與否,都會被編譯。相比之下,v-if更適合條件不經常改變的場景,因為它切換開銷相對較大,而v-show適用於頻繁切換條件。

3. 演示測試

>

>

charset

="utf-8"

>

>

vue 測試例項title

>

src=

"">

script

>

head

>

>

>

type

="button"

@click

="toggle"

value

="顯示/隱藏"

>

v-if

="flag"

>

這是用v-if控制的元素h3

>

v-show

="flag"

>

這是用v-show控制的元素h3

>

div>

>

let vm=

newvue(,

methods:,}

})script

>

body

>

html

>

顯示狀態效果圖。

顯示狀態控制台渲染效果如下。

隱藏狀態效果圖。

隱藏狀態控制台渲染效果如下。

我們可以發現對於v-show指令,元素隱藏時,只是增加了display:none的樣式,而 v-if 指令則直接通過把該行刪除來實現了隱藏效果。

結論:

v-if和v-show的相同點:

都能夠實現指定內容的顯示和隱藏操作的效果。

v-if和v-show的不同點:

v-if在每次完成顯示和隱藏功能時,需要不斷的在dom樹上完成節點的建立和刪除操作,v-show則直接通過修改display樣式的屬性值來完成。

v-if和v-show的使用場景總結:

當乙個元素會被頻繁的顯示和影藏時,使用v-show。當元素在響應式網頁的操作過程中,根據不同使用者的需求,可能永遠不會被顯示或被隱藏,則選擇使用v-if。

vue指令之v if與v show

v if main.js data index.html 待檢視簡歷。你沒有許可權檢視資訊!v if中包裹多個標籤 hello world data v show v show 的用法與 v if 基本一致,只不過 v show 是改變元素的css 屬性display。當v show表示式的值為fa...

vue的v if和v show的區別

v if元素始終會被渲染並保留在dom中。v show只是簡單地切換元素的css屬性display。v if和v show的區別和使用時機 1.v if是 真正的條件渲染 因為他會確保在切換過程中,條件塊內的事件 和子元件適當被銷毀和重建。2.v if是惰性的 如果在出事的渲染條件為假的時候,則什麼...

vue中v if和v show的區別

v if 是根據條件來判斷是否要渲染該元素。而 v show是已經渲染了該元素用css來決定他顯不顯示。看起來似乎是v if比較好一點。但是作為元素間的切換的話。v if有較高的切換開銷。所以當如果你的頁面元素要經常切換的話用v show會比較好。當不需要經常切換的時候,這種情況就用v if比較好。...