重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
v-if
v-if 完全根據表達式的值在DOM中生成或移除一個元素。如果v-if表達式賦值為false,那么對應的元素就會從DOM中移除;否則,對應元素的一個克隆將被重新插入DOM中。
Title Hello
greeting取值為true,效果截圖:
greeting取值為false,效果截圖:
template v-if
因為v-if是一個指令,需要將它添加到一個元素上。但是如果想切換多個元素,則可以把元素當作包裝元素,并在其上使用v-if,最終的渲染結果不會包含它。
Title Title
Paragraph2
Paragraph3
在切換v-if模塊時,Vue.js有一個局部編譯/卸載過程,因為v-if中的模板可能包括數據綁定或子組件。v-if是真實的條件渲染,因為它會確保條件塊在切換時合適地銷毀與重建條件塊內的事件監聽器和子組件。
v-if是惰性的--如果初始渲染時條件為假,則什么也不做,在條件第一次變為真時才開始局部編譯(編譯會被緩存起來)。
相比之下,v-show簡單得多----元素始終被編譯并保留,只是簡單地基于CSS切換。
v-show
v-show 根據表達式的值來顯示或隱藏HTML元素。當v-show賦值為false時,元素將被隱藏。查看DOM時,會發現元素上多了一個內聯樣式。
Hello
greeting取值為false,效果截圖:
greeting取值為true,效果截圖:
注意:v-show不支持語法
現在做一個小的demo,要求是如果文本框里面的內容為空是提示用戶輸入內容,有內容輸入時,剛才的提示內容消失并出現一個提交的按鈕
{{$data|json}}
new Vue({ el:'#app', data:{ msg:'' } })
在上面的例子中,聲明一個空的字符串msg,當不存在msg的時候,提示內容的div里面v-show為true;存在msg的時候,button里面v-show為true
通常,我們用jquery實現的時候都是去判斷輸入框內容是否為空,這里一樣可以用條件判斷 v-if的方式去實現,但是與v-show有區別
{{$data|json}}
隨著內容輸入,class為error的div整個消失了,而使用v-show的時候,只是把display屬性設置為none
一般來說,v-if有更高的切換消耗,而v-show有更高的初始渲染消耗。因此,如果需要頻繁地切換,則使用v-show較好;如果在運行時條件不大可能改變,則使用v-if較好。
v-else 顧名思義,v-else就是Javascript中else的意思,它必須跟著v-if或v-show,充當else功能
我是對的
我是錯的
將v-show用在組件上時,因為指令的優先級v-else會出現問題,所以不要這樣做
我們可以用另一個v-show替換v-else
這可能也是一個組件
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。