v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素;
<div id="example01">
<p v-if="male">Male</p>
<p v-if="female">Female</p>
<p v-if="age>25">Age:{{age}}</p>
<p v-if="name.indexOf('lin')>0">Name:{{name}}</p>
</div>
var vm= new Vue({
el:"#example01",
data:{
male:true,
female: false,
age:29,
name:'colin'
}
})
在<template>中配合v-if条件渲染一整组 因为v-if是一个指令,需要将它添加到一个元素上,但是如果我们想切换多个元素,此时我们可以把一个<template>元素当做包装元素,并在上面使用v-if,最终的渲染结果不会包含<template>元素
<body class="">
<div id="app-7">
<template v-if="ok">
<h1>yes</h1>
<p>duanluo1</p>
<p>duanluo2</p>
</template>
</div>
<script src="js/vue.js"></script>
<script>
Vue.component('my-component', {
template: '<p class="foo bar">Hi</p>'
})
var app = new Vue({
el: "#app-7",
data: { ok: true},
})
</script>
</body>
<body class="">
<div id="app-7">
<div v-if="type==='A'">A</div>
<div v-if="type==='B'">B</div>
<div v-if="type==='C'">C</div>
</div>
<script src="js/vue.js"></script>
<script>
Vue.component('my-component', {
template: '<p class="foo bar">Hi</p>'
})
var app = new Vue({
el: "#app-7",
data: { type: 'B'},
})
</script>
</body>
v-else-if,顾名思义,充当 v-if 的“else-if 块”。可以链式地使用多次:
#用key管理可复用的元素
<body class="">
<div id="app-7">
<template v-if="loginType==='username'">
<label>Username</label>
<input placeholder="enter your username" key="usename">
</template>
<template v-else>
<label>Email</label>
<input placeholder="enter your email address" key="input">
</template>
<button v-on:click="changeMethod">切换</button>
</div>
<script src="js/vue.js"></script>
<script>
var app = new Vue({
el: "#app-7",
data: { loginType: "username" },
methods: {
changeMethod: function() {
return this.loginType = this.loginType == "username" ? "email" : "username"
}
}
})
</script>
</body>
//v-if 根据表达式的值true 或者 false移除或插入html,key的作用是2个input是独立的
v-show 用法与v-if大致相同 <h1 v-show="ok">Hello!</h1> 不同的是带有v-show的元素始终会被渲染并保持在DOM中,是简单的切换元素的css display (显示或者隐藏) 注意:v-show不支持<template>语法,也不支持v-else
v-if与v-for一起使用 当v-if与v-for一起使用时,v-for具有比v-if更高的优先级
(adsbygoogle = window.adsbygoogle || []).push({});