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父组件调用子组件实战案例

JS实现文件拖拽步骤详解(附代码)

以上就是vue做出全选与反选功能的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 10:22:06
下一篇 2025年3月6日 08:51:26

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

相关推荐

  • PHP图片简单上传功能详解

    这篇文章主要为大家详细介绍了php图片简单上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 以下是代码:    登录后复制 总结: php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网…

    编程技术 2025年3月8日
    200
  • vue实现全选反选功能案例详解

    这次给大家带来vue实现全选反选功能案例详解,vue实现全选反选功能的注意事项有哪些,下面就是实战案例,一起来看一下。 全选功能可以说是前端开发中非常常见的一个功能,以前的项目开发用jQuery开发比较多。最近在使用vue前端框架重构之前的…

    2025年3月8日
    200
  • 移动端如何做出字母索引导航

    这次给大家带来移动端如何做出字母索引导航,移动端做出字母索引导航的注意事项有哪些,下面就是实战案例,一起来看一下。 vue+ better-scroll 实现移动端歌手列表字母索引导航。算是一个学习笔记吧,写个笔记让自己了解的更加深入一点。…

    2025年3月8日
    200
  • node实现爬虫功能案例分析

    这次给大家带来node实现爬虫功能案例分析,node实现爬虫功能的注意事项有哪些,下面就是实战案例,一起来看一下。 node是服务器端的语言,所以可以像python一样对网站进行爬取,下面就使用node对博客园进行爬取,得到其中所有的章节信…

    2025年3月8日
    200
  • JS百度搜索框效果功能实现案例详解

    这次给大家带来JS百度搜索框效果功能实现案例详解,JS百度搜索框效果功能实现的注意事项有哪些,下面就是实战案例,一起来看一下。 效果:   1.当进入界面时,自动调用方法,获取当前的时间,并且实时更新时间。   2.点击页面头部的换肤,自动…

    2025年3月8日
    200
  • JS做出哈希表功能

    这次给大家带来JS做出哈希表功能,JS做出哈希表功能的注意事项有哪些,下面就是实战案例,一起来看一下。 在算法中,尤其是有关数组的算法中,哈希表的使用可以很好的解决问题,所以这篇文章会记录一些有关js实现哈希表并给出解决实际问题的例子。 说…

    2025年3月8日
    200
  • JS实现透明度渐变功能

    这次给大家带来JS实现透明度渐变功能,JS实现透明度渐变功能的注意事项有哪些,下面就是实战案例,一起来看一下。 JS透明度变化效果 body{ margin: 0px; padding: 0px; } .redb{ width:200px;…

    编程技术 2025年3月8日
    200
  • jQuery实现电子时钟功能步骤详解

    这次给大家带来jQuery实现电子时钟功能步骤详解,jQuery实现电子时钟功能的注意事项有哪些,下面就是实战案例,一起来看一下。 jQuery电子时钟 haha window.onload = function(){ showTime()…

    2025年3月8日
    200
  • Mint UI怎样实现左滑删除功能

    这次给大家带来Mint UI怎样实现左滑删除功能,Mint UI实现左滑删除功能的注意事项有哪些,下面就是实战案例,一起来看一下。 关于Mint UI,有文档不够准确详尽,组件略显粗糙,功能不够完善等问题;也有高度组件化,体积小等优点。 安…

    2025年3月8日
    200
  • 使用Vue实现拖拽功能步骤详解

    这次给大家带来使用Vue实现拖拽功能步骤详解,使用Vue实现拖拽功能的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图: HTML代码: 位置 x:{{val.x}} y:{{val.y}} //注意这里要通过指令绑定函数将当前元素…

    2025年3月8日
    200

发表回复

登录后才能评论