摘要:并在上面使用,最終渲染結果將不包括元素。另外一個根據條件展示元素的指令,用法與大致相同。注意,不支持元素,也不支持與看完了文章,你會發現我們可以利用和兩個指令來控制我們元素的行為。
熟悉 Angular 的同學對指令肯定不會陌生,Vue中也借鑒了指令這一特性,在 Vue 中指令都是帶有 v- 的特殊屬性,那么指令有什么作用呢?
我的理解就是:指令是用來控制 DOM 元素的行為,例如最簡單的顯示,隱藏。
Vue 中有很多指令,在今后的學習過程總我們會逐步的學習,今天我們就來說說我們非常常用的兩個條件指令 v-if 和 v-show。
v-if看到 v-if 你肯定會想到 Javascrip 中的 if else 條件判斷語句,你會想是不是還會有 v-else 指令,沒錯 Vue 中不僅給我們提供了 v-else 指令而且還給我們提供了 v-else-if指令。
既然這樣我們就很好理解 v-if 指令了,其實就是根據表達式的值是真(true)假(false)來重建或者銷毀一個我們綁定的 DOM 元素。
怎么樣,通過我這么一說你對 if 指令有了更清楚的認識了吧?
什么東西啊,你這叫解釋的還行?(有些人)
好吧,我覺得我解釋的還行,如果你覺得不行,我們就直接一點擼代碼寫個案例,讓你一看就懂。
你看不見我,你看不見我,你看不見我
執行上面的代碼,你會發現頁面上除了什么都沒有,還是什么都沒有,總之你什么都看不見,就是不讓你看見,怎么辦?
我告訴你這個非常好辦呀,把它打出來就行了,我們在瀏覽器的控制臺打 vm.isShow=true 你就能看出效果了,不信?那我們就來試試。
看到了上面這個神奇的效果,我們再來思考一個問題,我們上面是在切換單個 DOM 元素,我們能不能來切換多個元素或者說嵌套元素呢?
你看不見我,你看不見我,你看不見我
呀,好像被你發現了!
正如我們的預期一樣,我們嵌套多層元素也是沒有問題的,效果還是那個效果。不過在 Vue 中推薦我們使用 標簽包裹元素。并在上面使用 v-if,最終渲染結果將不包括 元素。
你看不見我,你看不見我,你看不見我
呀,好像被你發現了!
可以看到我們代碼中使用的 標簽在渲染的時候沒有顯示
v-else上面我們已經提到了 v-else指令,它必須緊跟在帶 v-if 或者 v-else-if 的元素的后面,否則它將不會被識別。,我們用一個例子來看下它的用。
Modeng 是怎么樣的一個人?
非常帥還是帥
我們會看到這樣一個效果
如果我們修改下條件表達式的值
你會發現結果怎么還是帥,難道 Modeng 除了帥就沒有別的結果了嗎?其實,仔細的同學會發現,兩個帥的不一樣。
在這里只是和大家開個玩笑,其實我沒有大家想象的那么帥,只是想通過這個例子讓大家更容易理解和記住 v-else,你會發現我們的 v-if v-else指令和我們理解的 Javascript 中的 if else 一樣都是非此即彼的結果。
我們在瀏覽網站的時候,經常會遇到這么一個情況,你在沒有登陸的時候你看到的以一種內容,你在登陸的時候看到的又是另一種內容。如果我們用 if else指令就很好實現,大家可以自己嘗試一下,我給一個簡單的例子,更好玩的大家去發現。
v-else-if恭喜,恭喜,你竟然看到了我帥氣的容貌!登陸才可以查看更多內容
顧名思義,我們不做過多的解釋,因為前面我們已經解釋過,大家都明白的,v-else-if 還可以連續使用。
v-else-if 也必須緊跟在帶 v-if 或者 v-else-if 的元素之后。
我是誰?我在哪?我怎么了?誰能救救我!
看個動圖啥都明白了。
v-show另外一個根據條件展示 DOM 元素的指令,用法與 v-if大致相同。
不同點是:v-if控制的DOM元素的添加與刪除,會存在 DOM 的渲染與銷毀的過程。而 v-show 只是簡單的控制元素的 CSS 的 display 屬性。
當 v-show 的值為 true 時,綁定 DOM 的 display: block,當值為 false 時,綁定 DOM 的 display: none。
我只是用來控制 display 的屬性值
我們可以清楚的看到 DOM 元素始終是存在的,v-show 只是利用元素的 display 屬性控制著元素的顯示隱藏。
注意,v-show 不支持 元素,也不支持 v-else
v-if 與 v-show看完了文章,你會發現我們可以利用v-if和v-show 兩個指令來控制我們 DOM 元素的行為。但是兩者又存在一定的區別,那么你該如何去選擇使用那個指令呢?
來一起看官方的回答:
v-if 是“真正”的條件渲染,因為它會確保在切換過程中條件塊內的事件監聽器和子組件適當地被銷毀和重建。
v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變為真時,才會開始渲染條件塊。
相比之下 v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換。
一般來說 v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運行時條件很少改變,則使用 v-if 較好。
總結我們可以利用不同的方法去控制我們的 DOM 行為。
v-if和v-show 都可以控制元素的顯示隱藏但是有本質區別的,v-if 是控制元素的添加與刪除,而 v-show 只是控制元素的 display 屬性。
認識到兩者的區別我們就可以肯定自己的場景去選擇對應的方法,如果你的元素頻繁切換建議使用 v-show,反之你可以使用 v-if。
關注微信公眾號:六小登登。領取全套學習資源
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98178.html
摘要:模版語法中的模版是基于的模版語法,所有的模版都是合法的,所以能被遵循規范的瀏覽器和解析器解析。表達式模版中不僅僅可以進行簡單的數據綁定操作,我們還可以在模版中進行簡單的表達式。我們也簡單的敘述了模版編譯的整個流程。 我們在上一篇說到如何把 Vue 實例中的數據顯示到視圖中,就會需要用到我們的模版,我們只是簡單的使用了一些,模版其實還有很多其他的特性。今天我們就來看看模版的其他特性。 模...
摘要:如果一次判斷的是多個元素,可以在內置的元素上使用條件指令,最終渲染的結果不會包含該元素。列表渲染也支持用代替作為分隔符,它更接近迭代器的語法的表達式支持一個可選參數作為當前項的索引。分隔符前的語句使用括號,第二項就是當前項的索引。 學習筆記:內置指令 內置指令 基本指令 v-cloak v-cloak不需要表達式,它會在Vue實例結束編譯時從綁定的HTML元素上移除,經常和CSS的d...
摘要:第二個是其值是或,確認是否深入監聽。一般監聽時是不能監聽到對象屬性值的變化的,數組的值變化可以聽到第三個是其值是或,確認是否以當前的初始值執行的函數。混合定義來分發組件中的可復用功能結束,撒花文章已同步我的筆記,歡迎大家加,加后人生更加美好 vue.js記錄 文章已同步我的github筆記https://github.com/ymblog/blog,歡迎大家加star~~,加star后...
摘要:示例了解一門語言,或者學習一門新技術,編寫示例是我們的必經之路。分割線元素是否渲染在中,取決于前面使用的是還是指令。添加完對象后,重置對象刪一個數組元素 Vue.js是當下很火的一個JavaScript MVVM庫,它是以數據驅動和組件化的思想構建的。相比于Angular.js,Vue.js提供了更加簡潔、更易于理解的API,使得我們能夠快速地上手并使用Vue.js。 MVVM模式 下...
摘要:以及條件指令類似于里的,這三個指令根據表達式的值對組件進行渲染銷毀。如果想一次性判斷多個元素,可以將他們包裹在之內,使用條件指令操作外層的,并不會包含在最終的渲染結果中。要是不希望被復用,需要在指定的元素上添加值,值存在且唯一。 v-if、v-else-if、v-else以及v-show 條件指令v-if、v-else-if、v-else 類似于JavaScript里的if、else-...
閱讀 1123·2021-11-24 09:39
閱讀 3623·2021-09-02 15:21
閱讀 2161·2021-08-24 10:01
閱讀 722·2021-08-19 10:55
閱讀 2447·2019-08-30 15:55
閱讀 1212·2019-08-30 14:16
閱讀 2992·2019-08-29 15:17
閱讀 3235·2019-08-29 13:53