v-if、v-else、v-else-if、v-show
一、v-if
<!DOCTYPE html> <html> <head> <title>Welcome to Vue</title> <script src="https://unpkg.com/vue"></script> </head> <body> <div id="app"> <p v-if="character == 'a'">I'm a</p> <p v-if="character == 'b'">I'm b</p> </div> <script> var app = new Vue({ el: '#app', data: { character: "a" } }) </script> </body> </html>
執行結果
二、v-else-if
<!DOCTYPE html> <html> <head> <title>Welcome to Vue</title> <script src="https://unpkg.com/vue"></script> </head> <body> <div id="app"> <p v-if="character == 'a'">I'm a</p> <p v-else-if="character == 'b'">I'm b</p> </div> <script> var app = new Vue({ el: '#app', data: { character: "b" } }) </script> </body> </html>
執行結果
二、v-else
<!DOCTYPE html> <html> <head> <title>Welcome to Vue</title> <script src="https://unpkg.com/vue"></script> </head> <body> <div id="app"> <p v-if="character == 'a'">I'm a</p> <p v-else-if="character == 'b'">I'm b</p> <p v-else>I'm {{character}}</p> </div> <script> var app = new Vue({ el: '#app', data: { character: "c" } }) </script> </body> </html>
執行結果
說明:
v-else 一定是依附在 v-if 或 v-else-if 的元素之後,
不能在中間穿插別的東西,如果不是連在一起的話就會失效。
四、v-show
<!DOCTYPE html> <html> <head> <title>Welcome to Vue</title> <script src="https://unpkg.com/vue"></script> </head> <body> <div id="app"> <p v-show="character == 'a'">I'm a</p> <p v-show="character == 'b'">I'm b</p> </div> <script> var app = new Vue({ el: '#app', data: { character: "b" } }) </script> </body> </html>
執行結果
說明:
1、v-if 和 v-show 效果相同,差異在於是否有 else 的狀況。
2、v-show 會先把所有的元素都渲染出來,然後再用 display:none
來隱藏不符合的條件。
3、v-show 不能用於 <template>,但 v-if 可以。