添加删除例子:
<div id="app">
<input type="text" v-model="studentName" @keyup.enter="add" />
<button @click="add">添加</button>
<ul>
<li v-for="(item,index) in list" :key="item.id">
<span>名字:{{item.name}}</span>
<button @click="del(item.id)">删除</button>
</li>
</ul>
合计:<span>{{list.length}}</span>
<button @click="clear">清空</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@latest/dist/vue.js"></script>
<script>
const app = new Vue({
//element缩写
el: "#app",
data: {
studentName: "",
list: [
{ id: 1, name: "小明" },
{ id: 2, name: "小红" },
{ id: 3, name: "小白" },
],
},
methods: {
del(id) {
this.list = this.list.filter((item) => item.id != id);
},
add() {
if (this.studentName.trim() == "") {
alert("请输入名字");
return;
}
this.list.unshift({
id: +new Date(),
name: this.studentName,
});
},
clear(){
this.list = []
}
},
});
</script>指令修饰符
通过“.”指明一些指令后缀:
1)按键修饰符
@keyup.enter -> 键盘回车监听
2) v-model修饰符
v-model.trim -> 去除首尾空格
v-model.number -> 如果可以转为数字,则转为数字
3) 事件修饰符
@事件名.stop -> 阻止冒泡
@事件名.prevent -> 阻止默认行为
v-bind对于样式控制的增强
语法:
:class="{类名1:布尔值, 类名2:布尔值}" 比如:
:class="{pink:true,big:true}":class="数组" 比如:
:class="['pink','big']"
例子:鼠标放上去文字变红色
<style type="text/css">
.red{
color:red;
}
</style>
<div id="app">
<ul>
<li v-for="(item,index) in list" :key="item.id" @mouseover="btnover(index)" :class="{red:index===activeIndex}">
{{item.name}}
</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@latest/dist/vue.js"></script>
<script>
const app = new Vue({
//element缩写
el: "#app",
data: {
activeIndex:0,
list: [
{ id: 1, name: "小明" },
{ id: 2, name: "小红" },
{ id: 3, name: "小白" },
],
},
methods: {
btnover(index){
this.activeIndex = index;
}
}
});
</script>:style样式,比如:
:style="{width:'30%'}"