阅读官方文档,试着敲了下代码,我在思考如何把这学到的知识融会贯通的运用,只有多加练习。从这些练习中不仅学习到了数据绑定的知识还学习到了、取反、三元表达式的使用。
实现了一个点击它它就变个样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="vue.js"></script>
<style>
.activated{
color:blueviolet;
font-size:30px;
background: brown;
}
</style>
</head>
<body>
<div id="hello" @click="change"
:class="{activated:isActivated}"
>大帅哥
</div>
<script>
var vm =new Vue({
el:"#hello",
data:{
isActivated:false//是否绑定跟这个true和false的值有很大的关系
},
methods:{
change:function(){
this.isActivated=true
}
}
})
</script>
</body>
</html>
那么再次点击它,让它再变回原来的样式呢
这里可把function函数那里弄成取反的操作
<script>
var vm =new Vue({
el:"#hello",
data:{
isActivated:false//是否绑定跟这个true和false的值有很大的关系
},
methods:{
change:function(){
this.isActivated=!this.isActivated;//取反,它就会一直不停的变
}
}
})
</script>
如果使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="vue.js"></script>
<style>
.activated{
color:blueviolet;
font-size:30px;
background: brown;
}
</style>
</head>
<body>
<div id="hello" @click="change"
:class="[activated]"
>大帅哥
</div>
<script>
var vm =new Vue({
el:"#hello",
data:{
activated:""
},
methods:{
change:function(){
this.activated="activated";
}
}
})
</script>
</body>
</html>
如果class和数组绑定
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="vue.js"></script>
<style>
.activated{
color:blueviolet;
font-size:30px;
background: brown;
}
</style>
</head>
<body>
<div id="hello" @click="change"
:class="[activated]"
>大帅哥
</div>
<script>
var vm =new Vue({
el:"#hello",
data:{
activated:""
},
methods:{
change:function(){
if(this.activated==="activated"){
this.activated="";
}else{
this.activated="activated";
}
}
}
})
</script>
</body>
</html>
使用三元表达式替换那段庸余的if,else
this.activated = this.activated === "activated"? "": "activated";
好了上面是用class,下面用style
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="vue.js"></script>
<style>
.styleObj{
color:blueviolet;
font-size:30px;
background: brown;
}
</style>
</head>
<body>
<div id="hello" @click="change"
:style="styleObj"
>大帅哥
</div>
<script>
var vm =new Vue({
el:"#hello",
data:{
style:{
color:"black"
}
},
methods:{
change:function(){
this.styleObj.color = this.styleObj.color === "black"? "red" : "black";
}
}
})
</script>
</body>
</html>