一.class绑定
(1).字符串绑定
<style>
.active{
color: #f40
}
</style>
</head>
<body>
<div id="root">
<span :class="'active'">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root'
})
</script>
(2).条件绑定
<style>
.active{
color: #f40
}
</style>
</head>
<body>
<div id="root">
<span :class="{active:isShow}">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
isShow:false
}
})
</script>
对象绑定将值直接赋值为true即可
<div id="root">
<span :class="{active:true}">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
isShow:true,
lg:true
}
})
</script>
(3).不用内联的方式
<div id="root">
<span :class="classObj">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
classObj:{
active:true
}
}
})
</script>
(4).类名为kebab-code情况
<style>
.active{
color: #f40
}
.btn-lg{
font-size: 20px;
}
</style>
</head>
<body>
<div id="root">
<span :class="{active:isShow,'btn-lg':lg}">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
isShow:true,
lg:true
}
})
</script>
(5).数组绑定
<style>
.active{
color: #f40
}
.btn-lg{
font-size: 20px;
}
</style>
</head>
<body>
<div id="root">
<span :class="[isShow,]">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
isShow:'active',
lg:'btn-lg'
}
})
</script>
二.style绑定
(1).字符串绑定
<div id="root">
<span :style="{'font-size':'20px',color:'red'}">wwww</span>
</div>
(2).类绑定
<div id="root">
<span :style="styleObj">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
styleObj:{
'font-size':'20px',
color:'red'
}
}
})
</script>
(3).数组绑定
<div id="root">
<span :style="[styleObj,addStyle]">wwww</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
styleObj:{
'font-size':'20px',
color:'red'
},
addStyle:{
textShadow:'0 0 3px yellow'
}
}
})
</script>
三.条件渲染
(1).v-if/v-else-if/v-else
<div id="root">
<span v-if="show">{{message}}</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
message:"Hello World",
show:true
}
})
</script>
<div id="root">
<div v-if="weather === '太阳'">晴天</div>
<div v-else-if="weather === '多云'">多云</div>
<div v-else-if="weather === '雨天'"> 雨天</div>
<div v-else>其它</div>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
weather:"11",
}
})
</script>
(2).多个dom元素的条件渲染
使用外层盒子包裹
<div id="root">
<span v-if="show">
<p>1</p>
<p>2</p>
<p>3</p>
</span>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
message:"Hello World",
show:true
}
})
</script>
使用外层template包裹
(3).v-show
<div id="root">
<div v-show="true">
<p>1</p>
<p>2</p>
<p>3</p>
</div>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
message:"Hello World",
show:true
}
})
</script>
v-show是display=none 了 而不是像v-if一样直接不存在与dom结构中
v-show不支持template,尽管为false还是会显示
(4).输入框的值不会改变
当改变了第一个Input里显示效果后,第一个input的临时数据值会显示在第二个input上
<div id="root">
<div v-if="show">
Username:<input type="text"/>
</div>
<div v-else>
e-mail:<input type="text"/>
</div>
</div>
<script>
var vm = new Vue({
el:'#root',
data:{
show:"true",
}
})
</script>
<div v-if="show">
Username:<input type="text" key="username"/>
</div>
<div v-else>
e-mail:<input type="text" key="email"/>
</div>