当前位置: 首页 > news >正文

Web开发:Vue中的事件小结

一、全选按钮checkbox

<template><div id="checkboxs"><label><input id="selectAll" type="checkbox" v-model="selectAllChecked" @change="selectAllItems">全部</label><label v-for="(item, index) in options" :key="index"><input type="checkbox" v-model="checkedItems" :value="item">{{ item }}</label></div>
</template><script>
export default {data() {return {selectAllChecked: false, // 是否全选checkedItems: [], // 已选中的项options: [ // 可选项'A','B','C','D']};},methods: {selectAllItems() {if (this.selectAllChecked) {// 如果全选复选框被选中,则将所有选项都加入到 checkedItems 数组中this.checkedItems = [...this.options];} else {// 否则清空 checkedItems 数组this.checkedItems = [];}}},watch: {// 监听 checkedItems 数组的变化checkedItems: function(newVal) {// 根据已选中的数量来判断是否要勾选全选复选框this.selectAllChecked = newVal.length === this.options.length;}}
};
</script>

总结一下:

1.v-model具有双向绑定数据的功能

例如:

<input id="selectAll" type="checkbox" v-model="selectAllChecked" @change="selectAllItems">
this.selectAllChecked = 1

可以使得该按钮被选中

再例如:

<label v-for="(item, index) in options" :key="index"><input type="checkbox" v-model="checkedItems" :value="item">{{ item }}</label>
this.checkedItems = [...this.options]

[...this.options]的内容(例如为['A','B']),通过赋值给this.checkedItems可以使得A和B两个选项被选中。

2.watch可以监控v-model对应的控件的状态变化情况

例如:

watch: {// 监听 checkedItems 数组的变化checkedItems: function(newVal) {// 根据已选中的数量来判断是否要勾选全选复选框this.selectAllChecked = newVal.length === this.options.length;}

可以监听v-model为 checkedItems的控件的状态

3.@change是监听器,可以监听空间的变化,从而调用指定的方法

二、动态id

<label v-for="(item, index) in options" :key="index"><input type="checkbox" v-model="checkedItems" :value="item" :id="ki(index)">{{ item }}
</label>
methods: {ki: function (i) {return 'checkbox' + i}
}
  • input标签的value:就是options数组遍历的值
  • input标签的id:就是checkbox0 checkbox1.....  (通过ki方法实现)
http://www.lryc.cn/news/416317.html

相关文章:

  • 基于Springboot的运行时动态可调的定时任务
  • linux perf
  • Linux--网络层IP
  • 浅谈vite之import.meta
  • 【Pytorch实用教程】Pytorch中nn.Sequential的用法
  • Shopify被封?Shopify店铺开店到防封全面指南
  • 11. 盛最多水的容器
  • react如何父子组件传参
  • 【C++】二维数组 数组名
  • 【蘑菇书EasyRL】强化学习,笔记整理
  • 尚硅谷谷粒商城项目笔记——三、安装docker【电脑CPU:AMD】
  • 【8-9月份唯一机械电气计算机主题的IEEE会议】第七届机电一体化与计算机技术工程国际学术会议(MCTE 2024,8月23-25)
  • YOLOv8改进 | 主干网络 | 简单而优雅且有效的VanillaNet 【华为诺亚方舟】
  • Tomcat高可用集群(实例详解)
  • 搭建自己的金融数据源和量化分析平台(五):更新两市退市股票信息
  • Redis复习总结
  • 基于JSP的医院挂号系统
  • Chainlit快速实现AI对话应用1 分钟内实现聊天数据的持久化保存
  • STM32DMA数据传输
  • Python学习笔记50:游戏篇之外星人入侵(十一)
  • vue3踩坑问题记录
  • Python 爬虫实战:Scrapy 框架详解与应用
  • 60 函数参数——关键参数
  • wps 最新 2019 专业版 下载安装教程,解锁全部功能,免费领取
  • 前端(三):Ajax
  • 启动 /使用/关闭 Redis 服务器
  • Linux系统中的高级SELinux安全策略定制技术
  • 使用 Ansible Blocks 进行错误处理
  • java中的静态变量和实例变量的区别
  • 【Effecutive C++】条款02 尽量以const, enum, inline替换 #define