Vue指令1
内容绑定,事件绑定
v-text
- 设置标签的文本值(textContent):能解析文本
v-html
v-on
- 为元素绑定事件(可以用@)定义在methods:中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="app">
<h1 v-text="message+'!'">555</h1>
<p v-text="info+'!'">555</p>
<p>{{message+"!"}}555</p>
</div>
<div id="app2">
<p v-html="content"></p>
</div>
<div id="app3">
<input type="button" value="v-on指令" v-on:click="doit">
<input type="button" value="v-on简写" @click="doit">
<input type="button" value="双击事件" @dblclick="doit">
<p @click="changeFood">{{ food }}</p>
</div>
</body>
<script>
var app=new Vue({
el:"#app",
data:{
message:"Zany",
info:"666"
}
});
var app2=new Vue({
el:"#app2",
data:{
content:"<a href='http://www.baidu.com'>百度</a>",
}
})
var app3=new Vue({
el:"#app3",
methods:{
doit:function(){
alert("要开心");
},
changeFood:function(){
this.food+="!!!";
}
},
data:{
food:"少吃饭"
}
})
</script>
</html>
实例:计数器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>计数器</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<button @click="sub">-</button>
<span>{{ num }}</span>
<button @click="add">+</button>
</div>
</body>
<script>
var app=new Vue({
el:"#app",
data:{
num:0
},
methods:{
add:function(){
if(this.num!=100){
this.num+=1
}
else{
alert("不能大于100")
}
},
sub:function(){
if(this.num!=0){
this.num-=1
}
else{
alert("不能小于0")
}
}
}
})
</script>
</html>
v-show
v-if
- 根据表达式的真假,切换元素的显示状态(操纵Dom元素,频繁切换不建议使用v-if)
v-bind:(简写只保留:)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue指令2</title>
<style>
.active{
border: 1px solid red;
}
</style>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="app">
<button @Click="ChangeIsShow">show切换:显示/隐藏</button>
<button @Click="ChangeIsShow_if">if切换:显示/隐藏</button>
<img v-show="IsShow" src="./image/sun.jpg" alt="sun">
<img v-if="IsShow_if" src="./image/sun.jpg" alt="sun">
</div>
<div id="app2">
<img v-bind:src="imgSrc" alt="">
<img :src="imgSrc" alt="" :title="imgTitle+'icon'"
:class="isActive?'active':''" @click="toggleActive">
<img :src="imgSrc" alt="" :title="imgTitle+'icon'"
:class="{active:isActive}" @click="toggleActive">
</div>
<script>
var app=new Vue({
el:"#app",
data:{
IsShow:false,
IsShow_if:false,
},
methods:{
ChangeIsShow:function(){
this.IsShow=!this.IsShow;
},
ChangeIsShow_if:function(){
this.IsShow_if=!this.IsShow_if;
},
}
})
var app2=new Vue({
el:"#app2",
data:{
imgSrc:"./image/sunicon.jpg",
imgTitle:"sun",
isActive:true,
},
methods:{
toggleActive:function(){
this.isActive= !this.isActive;
},
}
})
</script>
</body>
</html>
实例:图片切换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<body>
<div id="app">
<a href="#" @click="prev" v-show="index!=0">上一张</a>
<img :src="imgArr[index]">
<a href="#" @click="next" v-show="index<imgArr.length-1">下一张</a>
</div>
</body>
<script>
var app=new Vue({
el:"#app",
data:{
imgArr:["./image/changeimg_sun1.png","./image/changeimg_sun2.png","./image/changeimg_sun3.png"],
index:0,
},
methods:{
prev:function(){
this.index--
},
next:function(){
this.index++
},
}
})
</script>
</html>