vue elementui分页,vue分页组件page

  vue elementui分页,vue分页组件page

  ElementUI也是一个非常好的组件库,对于表格、表单、时间日期选择器等常用组件都有很好的封装和接口。本文主要介绍Vue2.0 ElementUI PageHelper实现的表格分页。有需要的朋友可以参考一下。

  

前言

  最近做了一些前端项目,想把表格分页显示。表的分页方式有很多种,可以分为物理分页和逻辑分页。因为逻辑分页(也就是前端分页)是缓存所有数据,然后分页面显示,所以在数据量大的时候会影响浏览器的速度。所以经过考虑,我用了后端分页,后端分页的特点是请求当前页面的数据,每次页码或者每页的数据量发生变化的时候重新发送请求。这里使用的技术主要有以下几种:

  春天

  学习笔记一

  框架

  VueJS 2.0

  ElementUI

  后端数据库使用Mysql。事实上,也可以使用其他数据库,因为PageHelper插件兼容每个数据库。PageHelper的本质是插入一个拦截器,拦截器在mybatis的sql语句执行之前进行分页处理。本质上,它增加了两个极限参数。PageHelper的配置和使用方法请参考《Spring Mybatis对PageHelper插件分页》一文,此处不再赘述。

  前端用的是最近很流行的vuejs框架2.0。它是一个mvvm框架,类似于AngularJS,但更轻便。UI使用饿了么团队推出的elementUI框架,这是一个基于vuejs的框架,与我们的前端框架完美结合,封装了很多组件,开发起来很方便。

  下面是这个Demo的截图,实现了基本的增删查功能。表格排序是elementUI的表格控件中的一个属性,很容易设置。

  

正文

  以下是节目截图。右键单击在新选项卡中打开图片,以便清楚地查看。

  我们来看看前端代码。首先,导入文件:

  link rel= style sheet href=/core/element-ui/lib/theme-default/index . CSS rel= external no follow

  脚本src=。/js/jquery-3 . 1 . 1 . min . js /脚本

  脚本src=。/js/JSON 2 . js /脚本

  脚本src=。/js/vue.min.js/script

  脚本src=。/js/vue-resource . js /脚本

  脚本src=。/element-ui/lib/index . js /script

  第一行和最后一行是ElementUI的导入包,可以从ElementUI官网下载到源文件导入,也可以直接通过CDN导入:

  !-介绍风格-

  link rel= style sheet href= https://un pkg . com/element-ui/lib/theme-default/index . CSS rel= external no follow

  !-介绍组件库-

  script src= https://UNP kg . com/element-ui/lib/index . js /script

  倒数第二行vue-resource是vuejs的ajax插件,可以通过XMLHttpRequest或JSONP发起请求和处理响应。简单地说,它可以用来发送ajax请求。

  接下来是款式风格。

  风格。el-select。El-输入{

  宽度:110px

  }。el表。信息行{

  背景:# c9e5f5

  }

  #top {

  背景:# 20A0FF

  填充:5px

  溢出:隐藏

  }

  /风格

  HTML正文

  div id=test

  div id=top

  span style= float:right;

  El-button type= text @ click= add style= color:white add/El-button

  El-button type= text @ click= delete names style= color:white 批量删除/el-button

  /span

  /div

  br/

  div style=margin-top:15px

  El-input placeholder=请输入内容 v-model= criteria style= padding-bottom:10px;

  El-select v-model= select slot= prepend placeholder=请选择

  el选项标签=id 值=1/el选项

  el选项标签=名称值=2/el选项

  现在对上面的代码做一个简单的解释。tableData是显示在表格当前页面上的数据数组。加载网页时,首先执行loadData方法。criteria是当前的搜索条件,默认为空。第二个参数是当前页码,默认情况下是第一页。第三个参数是偏移量,即要查询的数字,即当前页面包含的数据量。当页码或每页的数据量发生变化时,将使用这些参数的新值作为参数再次调用该方法。我们可以看一下控制器的代码:

  @ResponseBody

  @ request mapping(value=/querystudentbypage ,method=RequestMethod。获取)

  public MapString,Object querystudentbypage(@ request param(value= parameter )字符串参数,

  @ request param(value= pageNum )int pageNum,@ request param(value= pageSize )int pageSize

  {

  page student page=inewstudentservice . select students(parameter,pageNum,pageSize);

  MapString,Object map=new HashMapString,Object();

  map . put( pagestudendata ,page);

  map.put(number ,page . gettotal());

  返回地图;

  }

  ce的实现代码:

  public page student select students(String参数,int pageNum,int pageSize)

  {

  page student page=page helper . start page(pageNum,pageSize);

  newstudentmapper . select students(参数);

  返回页面;

  }

  米巴蒂斯法典

  select id= select students result map= NewStudentResultMap

  select id,name from student where id=#{parameter}或name like CONCAT(% ,# { parameter }, % )

  /选择

  注意:为了简化代码,这里模糊了用户的输入。如果数据表中的id字段等于用户的输入或者name字段包含用户的输入,则可以查询。

  从上面的服务实现类和mabatis代码可以看出,我们并没有手动去给sql语句加limit,而是在newstudentMapper.selectStudents(parameter);这句代码之前加入了Page page = PageHelper.startPage(pageNum, pageSize);这句代码就是对PageHelper的调用,不需要去管PageHelper如何去实现(实际是通过Interceptor),只需要这一句代码就可以做出物理分页。它会对紧跟在它后面的一个sql查询起作用,并且返回分页后的当页代码。

  在控制器的Map中,我们可以看到put有两个值,一个是返回的列表,另一个是数据总量。前端表格控件将使用这个列表,而分页控件将使用这个数据总量。注意startPage的参数,第一个是想要请求的页码,第二个是请求页的数据量。这两个要与前端请求时发送的参数相对应。

  程序的其他基本功能包括添加、修改、删除、批量删除等。前端代码已经解释过了,后端代码简单调整到数据库,这里就不粘贴后端代码了。

  注意:

  表格点击高亮功能可以通过在ElementUI的表格控件中添加highlight-current-row属性来设置,但是高亮颜色封装在css文件中。我在这里没有使用这个属性。相反,我自定义了一个类样式,并在单击一行时将自定义样式分配给当前行。如果你对ElementUI本身的高亮颜色不满意,又不想改变css文件,可以用这种方式自定义一个行点击响应。

  

写在最后的话

  vuejs作为前端控件,近年来越来越受欢迎,其社区非常活跃。同时有大量开源项目库支持。详细列表请参考Vue开源项目库。如果vuejs与开源库整合,将会大大提高前端开发的效率,尤其是像我这样对前端不熟悉的后端工程师,也可以通过对比来自官网的教程和实例来开发前端。如果用ES6,模块化会更容易。

  ElementUI也是一个非常好的组件库,对于表格、表单、时间日期选择器等常用组件都有很好的封装和接口。

  PageHelper作为一款中文编写的mybatis分页插件,性能还算不错,支持目前所有主流数据库,使用起来也很方便。

  前端开发需要学习的东西并不比后端开发少多少,需要经验的积累。这里记录一下学习前端开发的历程。

  关于Vue2.0 ElementUI PageHelper实现的表分页功能的这篇文章到此为止。关于Vue2.0 ElementUI PageHelper的表分页的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: