Vue全选示例

本文将详细讲解如何在Vue项目中实现全选和反选的功能。通过实例代码,我们将展示如何使用v-model和计算属性来同步checkbox的状态,以及如何在数据更新时响应式地更新视图。无论你是Vue初学者还是有经验的开发者,这个教程都将帮助你更好地理解和应用Vue的双向数据绑定特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<div>
	<div>
		<input type="checkbox" @click="checkAll" v-model="checked">
		<span>全选</span>
	</div>
	<ul>
		<li v-for="(item,index) in list" :key="index" style="margin-top:20px;">
			<input type="checkbox" v-model="checkModel" :value="item.id">
			<span>{{item.name}}--</span>
			<span>{{item.age}}--</span>
			<span>{{item.money}}元</span>
		</li>
	</ul>
</div>
<script>
	export default{
		data: function(){
			return {
				checked:false,
				checkModel:[],
				list:[
					{id:1,name:"明明",age:23,money:100},
					{id:2,name:"明明",age:23,money:100},
					{id:3,name:"明明",age:23,money:100},
					{id:4,name:"明明",age:23,money:100}
				],
			}
		},
		watch:{
			checkModel(){
				if(this.checkModel.length == this.list.length){
					this.checked = true;
				}
				else{
					this.checked = false;
				}
			}
		},
		methods:{
			checkAll(){
				if(this.checked){
					this.checkModel = []
				}
				else{
					this.list.forEach((item) => {
						if(this.checkModel.indexOf(item.id) == -1){
							this.checkModel.push(item.id);
						}
					})
				}
				console.log(this.checkModel);
				
			}
		}
	}
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值