vuejs实现本地数据的筛选分页功能

做项目需要一份根据本地数据的筛选分页功能,下面小编把vuejs实现本地数据的筛选分页功能的实现思路分享到脚本之家平台,需要的朋友可以参考下,希望能帮助到大家。

效果图:

vuejs实现本地数据的筛选分页功能

项目需要:点击左侧进行数据筛选,实现自动分页,自动生成页数,点击自动跳转

项目代码:js代码

var subList=new Vue({  el:'#main',  data:{    // subcontentData为本地数据    subContents:subcontentData,    // 页面需要展现的数据    yemiandata:[],    // 页面展现条数    datanum:12,    // 开始椰树    startnum:0,    // 结束椰树    endnum:1,    // 一共多少页    btnnum:0,    // 生成切换页面的按钮用    listnum:[],    // input跳转    jemp:1,  },  methods:{    filters(num){      this.subContents=subcontentData;      // 需要重置防止翻页导致startnum和endnum不一致      this.startnum=0;      this.endnum=1;      // 这里是判断筛选按钮      switch(num){        case 0: $('#sublist li').css({          background:'#f2f2f2'        }).eq(0).css({          background:'#dbe9f0'        });          this.fenye();          break;        case 1:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(1).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('行政');          });          this.fenye();          break;        case 2:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(2).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('报关');          });          this.fenye();          break;        case 3:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(3).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('组装');          });          this.fenye();          break;        case 4:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(4).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('电子');          });          this.fenye();          break;        case 5:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(5).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('工艺');          });          this.fenye();          break;        case 6:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(6).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('财务');          });          this.fenye();          break;        case 7:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(7).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('制造');          });          this.fenye();          break;        case 8:          $('#sublist li').css({            background:'#f2f2f2'          }).eq(8).css({            background:'#dbe9f0'          });          this.subContents=this.subContents.filter(num=>{            return String(num['department']).includes('销售');          });          this.fenye();          break;      }    },    // 分野函数    fenye(){      this.yemiandata=this.subContents.slice(this.startnum*this.datanum,this.endnum*this.datanum);      this.btnnum=Math.ceil(this.subContents.length/this.datanum);      this.listnum=[];      for(i=0;i= this.btnnum){        alert('最后一页了');        return false;      }      this.endnum++;      this.startnum++;    },    // 上一页函数    prevlist(){      if(this.startnumthis.btnnum){alert('请输入合法参数');return}      this.endnum=this.jemp;      this.startnum=this.jemp-1;    }  },  // 使用一个监听。可以减少很多代码  watch:{    startnum(n,o){      this.yemiandata=this.subContents.slice(n*this.datanum,(parseInt(n)+1)*this.datanum);    }  }});  subList.filters(0);  subList.fenye();  // 封装一下底部btn方法 底部自动大小  function btnwidth(){    $('#fbtn').css({      width:(subList.listnum.length+2)*40+293+'px',      marginLeft:-((subList.listnum.length+2)*40+293)/2+'px'    })  }  btnwidth();

登录后复制

下面是html节点代码:

立即学习“前端免费学习笔记(深入)”;

      

        

登录后复制          

部门分类(部门8/8)

          

行政部

          

报关科

          

组装部

          

电子部

          

工艺部

          

财务部

          

制造部

          

销售部

                    

        

          

告警策略报表统计

          

            主机名称             

              

                下啦                下啦2                                              

            添加          

                                      

工号

            

姓名

            

部门名称

            

性别

            

籍贯

            

员工状态

            

入职时间

            

离职时间

            

离职类别

                                {{subContent.num}}            {{subContent.name}}            {{subContent.department}}            {{subContent.sex}}            {{subContent.addres}}            {{subContent.staic}}            {{subContent.jointime}}            {{subContent.leavetime}}            {{subContent.type}}                          

          

                                    {{list}}            >            

共{{btnnum}}页

            

到第  页

                                    

说下思路:首先我们需要本地一组数据,通过vue添加到页面中,第二步我们需要做好分页,那么可以写一个函数对吧,所以有了下面的fenye(命名不规范,大虾勿怪)函数,所谓分页无非就是把一个大数据分成每个小页面去展现,所以我写了一个专门用来展现的数组,也就是yemiandata(同样不规范,我说因为我做的网站内容太多了,所以命名已经用尽了,你们信么),之后我们需要得到多少个页面,并变成一个btn按钮,为了省事,我增加了一个watch:用来监听startnum(开始页数)他变化的话就改变展现。

第三步:分页的话肯定要有上一页下一页,这个就简单多了下一页就是startnum和endnum都增加一,上一页反之。

第四步:也要有点击页数的按钮进行跳转,这个也不难,就是让按钮点下去跳转到指定页,但是去写函数么?不现实对吧,所以我用了一个数组listnum存放多少个按钮,这里解释下为什么不用变量用数组,因为vue中v-for不支持变量循环,所以我改用数组,方便前面html生成节点。

第五步说了需要做筛选,筛选的话就是吧需要展现的素组变成包含制定关键词的,filters函数,利用js的filter和includes进行筛选,做完看看,失败了,出现了很多undefind,为什么?仔细看看没有重置数组,导致第二次筛选是在第一次筛选完的基础筛选。那就重置一下咯,再看看,搞定!

相关推荐:

3.1.3多筛选分页路由

深入理解jQuery layui分页控件的使用

LayUI实现前端分页功能

以上就是vuejs实现本地数据的筛选分页功能的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 19:00:10
下一篇 2025年2月28日 05:42:52

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

相关推荐

  • Js判断H5上下滑动方向详解

    本文主要为大家分享一篇js判断h5上下滑动方向及滑动到顶部和底部判断的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。 向上滑动隐藏底部悬浮框,向下滑动显示悬浮框。使用pc端浏览器查看请把浏览器设…

    编程技术 2025年3月8日
    200
  • IWinter一个路由转控制器的Nodejs库详解

    本文主要介绍了详解iwinter 一个路由转控制器的 nodejs 库,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 IWinter 是一个路由转控制器的 node 库,只解决一个问题:为了…

    编程技术 2025年3月8日
    200
  • js ajax同步请求造成浏览器假死的问题如何解决?

    本文主要为大家分享一篇解决js ajax同步请求造成浏览器假死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。 一、问题的起因 今天做一个需求遇到了这么个情况,就是用户个人中心有个功能,点击按钮,可…

    编程技术 2025年3月8日
    200
  • nodejs最新版安装npm的使用方法分享

    本文主要介绍了nodejs 最新版安装npm 的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 # 安装 nodejs 以下介绍的是命令行安装方法,读者也可以到nodejs官网 上下…

    2025年3月8日
    200
  • javascript将url解析为json格式的两种方法

    本篇文章主要介绍了javascript将url解析为json格式的两种方法,具有一定的参考和学习javascript的价值,对javascript感兴趣的小伙伴们可以参考一下本篇文章 本文介绍了javascript将url解析为json格式…

    2025年3月8日
    200
  • JS模拟超市简易收银台小程序代码解析

    本文通过实例代码给大家介绍了js模拟超市简易收银台小程序代码,非常不错,具有参考和学习js的价值,对js感兴趣的的朋友参考下吧 废话不多说了,直接给大家贴代码了,具体代码如下所示:   // 1.编写一个程序,计算增加后的工资。要求基本工资…

    编程技术 2025年3月8日
    200
  • JavaScript 完成注册页面表单校验的实例

    下面小编就为大家带来一篇javascript 完成注册页面表单校验的实例。小编觉得挺不错的,现在就分享js源码给大家,也给大家做个参考。对javascript感兴趣的一起跟随小编过来看看吧 1、步骤分析 第一步:确定事件(onsubmit)…

    编程技术 2025年3月8日
    200
  • JavaScript文件的同步和异步加载的实现代码

    本篇文章主要介绍了javascript文件的同步和异步加载的实现代码,具有一定的参考和学习javascript的价值,对javascript感兴趣的可以了解一下本篇文章 对于JS文件的引用,尽管当前有不少框架和工具(比如webpack,co…

    2025年3月8日 编程技术
    200
  • JavaScript实现为事件句柄绑定监听函数实例详解

    本文主要介绍了javascript实现为事件句柄绑定监听函数的方法,结合实例形式分析了javascript事件绑定的常用技巧与注意事项,需要的朋友可以参考下,希望能帮助到大家。 在JavaScript中为Dom元素绑定事件监听函数是一件非常…

    编程技术 2025年3月8日
    200
  • JavaScript函数绑定用法解析

    本文主要介绍了javascript函数绑定用法,结合实例形式分析了javascript函数绑定的原理、实现方法与相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 Perface 如果让你实现这个页面和一些操作的,比如点击1、2、3等就…

    2025年3月8日
    200

发表回复

登录后才能评论