v-bind
动态class的写法 对象的写法
如何去反
如何封装对象
v-bind动态绑定class对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.active{
color: red;
}
</style>
</head>
<body>
<div id="app">
<h2 :class="getactive()">(。・∀・)ノ゙嗨!</h2>
<button type="button" @click="changeActive()">切换</button>
</div>
<script src="../js/vue.js">
</script>
<script type="text/javascript">
const app =new Vue({
el:"#app",
data(){
return{
isactive:true
}
},
methods:{
getactive(){
return{
active:this.isactive
}
},
changeActive(){
this.isactive=!this.isactive
}
},
computed:{
}
})
</script>
</body>
</html>
v-bind动态绑定class数组
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<h2 class="title" :class="['active','line']">{{message}}</h2>
<h2 class="title" :class="[active,line]">{{message}}</h2>
<h2 class="title" :class="getClasses()">{{message}}</h2>
</div>
<script src="vue.js"></script>
<script>
const app = new Vue({
el: "#app",
data(){
return{
message:"你好啊",
active:'aaa',
line:'bbb'
}
},
methods: {
getClasses(){
return [this.active,this.line]
}
},
computed:{
}
})
</script>
</body>
</html>
v-for与v-bind的结合
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.active {
color: #FF0000;
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(item,index) in movies" :key="index" :class="{active:index==currentIndex}" @click="changeColor(index)">{{index}}--{{item}}</li>
</ul>
<ul>
<li v-for="(item,index) in movies" :key="index" :class="currentIndex==index?'active':''" @click="changeColor(index)">{{index}}--{{item}}</li>
</ul>
</div>
<script src="vue.js"></script>
<script>
const app = new Vue({
el: "#app",
data() {
return {
currentIndex: 0,
movies: ["死神", "海贼王", "火影忍者", "全职猎人"]
}
},
methods: {
changeColor(a) {
console.log(a);
this.currentIndex = a
}
},
computed: {
}
})
</script>
</body>
</html>