官术网_书友最值得收藏!

3.1.2 條件指令

除了基本指令外,Vue內置指令還包含條件指令。和JavaScript的條件語句一樣,Vue的條件指令可以根據表達式的值在DOM中渲染或者銷毀元素/組件。常用的Vue條件指令有v-if、v-else、v-else-if。下面對它們及v-show進行詳解。

1.v-if

v-if:條件渲染指令,動態地在DOM內添加或刪除DOM元素。

主要用法:根據表達式值的真假判斷是否渲染元素,在切換時元素及它的數據綁定/組件被銷毀并重建。如果元素是<template>,將提出它的內容作為條件塊。

代碼如下:

運行效果如圖3-10所示。

圖3-10 v-if運行效果圖

2.v-else

v-else:條件渲染指令,必須與v-if成對使用。

主要用法:v-else元素必須緊跟在v-if或者v-else-if的后面,否則它將不會被識別。

代碼如下:

運行效果如圖3-11所示。

圖3-11 v-else運行效果圖

3.v-else-if

v-else-if:判斷多層條件,必須跟v-if成對使用。

主要用法:表示v-if的“else if”塊,可以鏈式調用。前一兄弟元素必須有v-if或v-else-if。代碼如下:

運行效果如圖3-12所示。

圖3-12 v-else-if運行效果圖

4.v-show

v-show:條件渲染指令,為DOM設置CSS的Style屬性。

主要用法:根據表達式的真假值,切換元素的CSS屬性display。當條件變化時,該指令觸發過渡效果。

提示:帶有v-show的元素始終會被渲染并保留在DOM中。

代碼如下:

    <!DOCTYPE html>
    <html>
       <head>
         <meta charset="utf-8">
         <title>v-show練習</title>
       </head>
     <body>
         <h3 v-show="ok">Hello Vue!</h3>
    </body>
    </html>

運行效果如圖3-13所示。

圖3-13 v-show運行效果圖

v-show的用法與v-if基本一致,只不過是改變元素的CSS屬性display。當v-show表達式的值為false時,元素會隱藏,查看DOM結構會看到元素上加載了內聯樣式display:none。v-if和v-show具有類似的功能,不過v-if才是真正的條件渲染,它會根據表達式適當地銷毀或重建元素及綁定的事件或子組件。若表達式初始值為false,則一開始元素/組件并不會渲染,只有當條件第一次變為真時才開始編譯。

主站蜘蛛池模板: 新野县| 襄樊市| 金门县| 寿宁县| 台南市| 九台市| 宝山区| 滁州市| 北宁市| 静乐县| 射洪县| 开远市| 荣昌县| 闽清县| 巴彦县| 崇文区| 石狮市| 潼关县| 浮梁县| 柳林县| 保康县| 巴青县| 桐梓县| 咸阳市| 和顺县| 六枝特区| 南雄市| 平罗县| 眉山市| 秦皇岛市| 金溪县| 沁源县| 宣威市| 丹凤县| 金门县| 济宁市| 朝阳县| 赤水市| 多伦县| 长治县| 章丘市|