vue实现动态添加元素(可删除)
作者:a伊雪
文章介绍了如何在Vue中动态添加和删除元素,通过使用Vue的响应式数据和v-for指令,可以轻松地实现这一功能,文章还详细讲解了如何处理元素的添加和删除事件,以及如何更新视图以反映这些变化
vue动态添加元素(可删除)
//车辆添加按钮
handleAddCar(){
console.log(this.infoForm.carList);
if(this.infoForm.carList.length>1){
Toast.success({ message:"最多添加两辆车辆信息" ,duration: 1000});
return;
}else{
let cope = {
name: "",
}
this.infoForm.carList.push(cope);
}
},
//删除车辆
handleDelCar(index){
this.infoForm.carList.splice(index, 1);
}, <van-field
placeholder="车辆信息"
:disabled="isPreview"
v-for="(list,index) in infoForm.carList"
:key="index"
:label="'车辆信息'+(index+2)"
:name="'licenseNum'+(index+2)"
v-model="list.name"
>
<template #button>
<van-icon name="close" v-show="!isPreview" size="0.7rem" color="#1989fa" @click="handleDelCar"/>
</template>
</van-field> vue动态添加/删除dom元素

vue的思想是通过数据操作dom,所以我们根据data中的数据进行对dom的遍历,从而操作数据就可以对vue进行一个动态的添加或者删除啦!
<template>
<div>
<input
v-model="inpValue"
type="text"
placeholder="请输入添加文字"
@blur="addList"
/>
<ul v-if="list.length > 0">
<li v-for="(item, index) in list" :key="index">
{{ item }} <span @click="removeList(index)">X</span>
</li>
</ul>
</div>
</template><script>
export default {
data() {
return {
list: [],
inpValue: "",
};
},
methods: {
// 向list数组内添加
addList() {
// 判断输入框不为空
if (this.inpValue) {
// 查重
const isIncludes = this.list.includes(this.inpValue);
if (!isIncludes) {
this.list.push(this.inpValue);
this.inpValue = "";
} else {
alert("添加重复");
this.inpValue = "";
}
}
},
// 向数组中删除元素
removeList(index) {
this.list.splice(index, 1);
},
},
};
</script><style scoped>
div {
width: 1200px;
margin: 100px auto;
}
input {
width: 400px;
border: 1px solid #eee;
border-radius: 5px;
height: 30px;
line-height: 30px;
}
ul {
margin: 20px 0;
padding: 0;
list-style-type: none;
width: 400px;
}
li {
border: 1px solid #ccc;
margin: 10px 0;
position: relative;
}
span {
position: absolute;
cursor: pointer;
right: 10px;
color: red;
}
</style>总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
