vue.js框架实现表单排序和分页效果


Posted in Javascript onAugust 09, 2017

本文实例为大家分享了vue.js实现表单排序和分页的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <script src="../lib/vue.min.js" type="text/javascript"></script>
  <title>表格组件</title>
 </head>
 <body>
  <div id="app">
   <mydiv v-bind:info="info" v-bind:header="header" v-bind:num="num" v-bind:page="page"></mydiv>
  </div>
  <script type="text/x-template" id="mysc">
   <div>
    <table>
     <tr>
      <th v-for='x in header' v-on:click="bit(x)">{{x.key}}</th>
     </tr>
     <tr v-for="y in fenye">
      <th v-for="x in header">{{y[x.name]}}</th>
     </tr>
    </table>
    <button v-on:click="lastPage">上一页</button>   
    <button v-on:click="nextPage">下一页</button>  
   </div>
  </script>
  <script type="text/javascript">
   Vue.component('mydiv',{
    template:'#mysc',
    props:{
     /*属性不能用驼峰命名法*/
     info:Array,
     header:Array,
     num:Number,
     page:Number,
     boolen:Boolean,
     tiaojian:String
    },
    data: function() {
     return {}
    },
    computed:{
     fenye:function(){
      /*排序*/
      var list=this.info;
      var paixu=this.tiaojian;
       for(var i = 1;i<list.length;i++){
        for(var j=0;j<list.length-i;j++){
         if(this.boolen){
          if(list[j][paixu]>list[j+1][paixu]){
           var k=list[j+1];
           list[j+1]=list[j];
           list[j]=k;
          }
         }else{
          if(list[j][paixu] < list[j + 1][paixu]) {
           var k;
           k = list[j];
           list[j] = list[j + 1];
           list[j + 1] = k;
          }
         }
        }
       }
      /*分页*/
      var list2 = [];
      var start= this.num*(this.page-1);
      var end=start+this.num;
      if(end<list.length){
       for(var i =start;i<end;i++){
        list2.push(list[i])
       }
      }else{
       for(var i =start;i<list.length;i++){
        list2.push(list[i])
       }
      }
      return list2;
     }
    },
    methods:{
     bit:function(x){
      this.boolen=!this.boolen;
      this.tiaojian=x.name;      
     },
     lastPage:function(){
      console.log(this.num)
      if(this.page > 1) {
       this.page = this.page - 1;
      }
     },
     nextPage: function() {
      var pageNum = this.info.length / this.num;
      if(this.page < pageNum) {
       this.page = this.page + 1;
      }
     }
    }
   })

   var phone=new Vue({
    el:'#app',
    data:{
     boolen:true,
     num:5,
     page:1,
     info:[],
     header:[{
      key: '名称',
      name:'name'
     }, {
      key: '价格',
      name:'price'
     }, {
      key: '数量',
      name:'num'
     }]
    }
   })
   for(var i = 0;i<22;i++){
     phone.info.push({
     name:'手机'+i,
     num:i,
     price:100*i
     })
     console.log(111)
   }
  </script>
 </body>
</html>

效果图:

vue.js框架实现表单排序和分页效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使javascript也能包含文件
Oct 26 Javascript
一个用js实现控制台控件的代码
Sep 04 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
javascript 精粹笔记
May 09 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
JavaScript中Cookies的相关使用教程
Jun 04 Javascript
JavaScript中数组的合并以及排序实现示例
Oct 24 Javascript
jquery实现二级导航下拉菜单效果
Dec 18 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
Jan 08 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 Javascript
修改Jquery Dialog 位置的实现方法
Aug 26 Javascript
javascript 注释代码的几种方法总结
Jan 04 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 #Javascript
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 #jQuery
vue 打包后的文件部署到express服务器上的方法
Aug 09 #Javascript
vuejs事件中心管理组件间的通信详解
Aug 09 #Javascript
JS实现的加减乘除四则运算计算器示例
Aug 09 #Javascript
AngularJS ionic手势事件的使用总结
Aug 09 #Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 #Javascript
You might like
超级实用的7个PHP代码片段分享
2012/01/05 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
python进程与线程小结实例分析
2018/11/11 PHP
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
jQuery中ajax错误调试分析
2016/12/01 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
python实现简单登陆流程的方法
2018/04/22 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
岗位职责的含义
2013/11/17 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
汽车转让协议书
2015/01/29 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
python基础之错误和异常处理
2021/10/24 Python
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫