vue实现全选或反选案列详解

这次给大家带来vue实现全选或反选案列详解,vue实现全选或反选的注意事项有哪些,下面就是实战案例,一起来看一下。

全选功能可以说是前端开发中非常常见的一个功能,以前的项目开发用jQuery开发比较多。最近在使用vue前端框架重构之前的项目。从jQuery到vue的转变主要是一个思想想的转变,是将原有的直接操作dom的思想转变到操作数据,用数据驱动dom,也是vue框架的一个核心思想,思想转变过来,对功能的实现自然容易理解一些。

例如下面这个简单的demo

vue实现全选或反选案列详解

按照jQuery的思想来做的话,要选中全选checkbox和所有的checkbox项,分别注册选中事件,判断选中状态来给相关的checkbox设置对应的状态,这就涉及到很多的dom操作。

下面就看一下vue数据驱动dom的思想来实现这一功能。

vue数据驱动dom实现功能

new Vue({ el: '#app', data(){ return { checkData: [] // 双向绑定checkbox数据数组 } }, watch: { // 监视双向绑定的数据数组 checkData: { handler(){ // 数据数组有变化将触发此函数 if(this.checkData.length == 3){ document.querySelector('#quan').checked = true; }else { document.querySelector('#quan').checked = false; } }, deep: true // 深度监视 } }, methods: { checkAll(e){ // 点击全选事件函数 var checkObj = document.querySelectorAll('.checkItem'); // 获取所有checkbox项 if(e.target.checked){ // 判定全选checkbox的勾选状态 for(var i=0;i<checkObj.length;i++){ if(!checkObj[i].checked){ // 将未勾选的checkbox选项push到绑定数组中 this.checkData.push(checkObj[i].value); } } }else { // 如果是去掉全选则清空checkbox选项绑定数组 this.checkData = []; } } } });

登录后复制

利用vue的双向数据绑定v-model命令,当勾选时,checkbox的value值会自动push到所绑定的数组checkData中去,省去了不少对dom的操作。

如果是固定选项这样是可以实现的,但是这种方法有一些弊端,双向绑定数组数据是写死的,不太灵活,如果增加了checkbox选项,要更改wach里绑定数组的长度判断。

有时候checkbox选项也是后台动态获取过来的,这样也灵活一些。

例如后台数据是这样的:

  ajaxData: [{    name: 'a',    value: 'apple'  },{    name: 'b',    value: 'banana'  },{    name: 'c',    value: 'orange'  }]

登录后复制

需要先动态渲染checkbox选项,在进行数据绑定。

new Vue({ el: '#app', data(){ return { ajaxData: [{ // 后台请求过来的数据 name: '选项1', value: 'apple' },{ name: '选项2', value: 'banana' },{ name: '选项3', value: 'orange' }], checkData: [] // 双向数据绑定的数组 } }, watch: { checkData: { // 监视双向绑定的数组变化 handler(){ if(this.checkData.length == this.ajaxData.length){ document.querySelector('#quan').checked = true; }else { document.querySelector('#quan').checked = false; } }, deep: true } }, methods: { checkAll(e){ // 点击全选事件 if(e.target.checked){ this.ajaxData.forEach((el,i)=>{ // 数组里没有这一个value才push,防止重复push if(this.checkData.indexOf(el.value) == '-1'){ this.checkData.push(el.value); } }); }else { // 全不选选则清空绑定的数组 this.checkData = []; } } } });

登录后复制

vue实现全选或反选案列详解

方法并不是最优的写法,也存在一些弊端,欢迎各位指点迷津,一起探讨。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue实现Observer步骤详解

vue.js树形控件使用详解

以上就是vue实现全选或反选案列详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2766769.html

(0)
上一篇 2025年3月8日 11:25:28
下一篇 2025年3月8日 11:25:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue项目引入icon步骤详解

    这次给大家带来Vue项目引入icon步骤详解,Vue项目引入icon的注意事项有哪些,下面就是实战案例,一起来看一下。 1.下载icon图标,推荐icomoon网站,里面有大量的矢量图标,也可以自定义,当然你也可以去阿里巴巴矢量图标库下载你…

    2025年3月8日 编程技术
    200
  • js使用分时函数步骤详解

    这次给大家带来js使用分时函数步骤详解,js使用分时函数的注意事项有哪些,下面就是实战案例,一起来看一下。 函数节流的原理是:延迟当前函数的执行,如果该次延迟还没有完成,那么忽略接下来该函数的请求。也就是说会忽掉很多函数请求。 在一些开发场…

    编程技术 2025年3月8日
    200
  • 在Vue中watch方法使用详解

    这次给大家带来在Vue中watch方法使用详解,在Vue中watch方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 watch本身很容易理解, watch负责将视图中的数据与某个函数关联起来 当Vue视图中的数据变化时, 关联的…

    2025年3月8日
    200
  • Vue自定义动态组件使用详解

    这次给大家带来Vue自定义动态组件使用详解,Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下。 现在基于vue的UI组件库有很多,比如iview,element-ui等。但有时候这些组件库满足不了我们的开发需求,这时候我…

    2025年3月8日 编程技术
    200
  • 使用Vue Mixin功能步骤详解

    这次给大家带来使用Vue Mixin功能步骤详解,使用Vue Mixin功能的注意事项有哪些,下面就是实战案例,一起来看一下。 转到用 Typescript 写 Vue 应用以后,经过一轮工具链和依赖的洗礼,总算蹒跚地能走起来了,不过有一个…

    编程技术 2025年3月8日
    200
  • js闭包使用详解

    这次给大家带来js闭包使用详解,js闭包使用的注意事项有哪些,下面就是实战案例,一起来看一下。 closure is the combination of a function and the lexical environment wit…

    编程技术 2025年3月8日
    200
  • vue常用组件使用详解

    这次给大家带来vue常用组件使用详解,vue常用组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 项目技术: webpack + vue + element + axois (vue-resource) + less-loader…

    编程技术 2025年3月8日
    200
  • vuex使用详解

    这次给大家带来vuex使用详解,vuex使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1、 npm install vuex 2、 在src 下 新建文件夹 store (为什么是这个单词,vuex 是用来状态管理的,用储存一些组…

    2025年3月8日 编程技术
    200
  • js捆绑TypeScript声明使用详解

    这次给大家带来js捆绑TypeScript声明使用详解,js捆绑TypeScript声明的注意事项有哪些,下面就是实战案例,一起来看一下。 前话 TypeScript是注意事项类型的超集,这是TypeScript的文档介绍的一句话,那么他们…

    2025年3月8日
    200
  • d.ts文件使用详解

    这次给大家带来d.ts文件使用详解,使用d.ts文件的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 本文主要讲怎么写一个typescript的描述文件(以d.ts结尾的文件名,比如xxx.d.ts)。 最近开始从js转ts了。但是…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论