Vue中v-for的数据分组实例


Posted in Javascript onMarch 07, 2018

使用Vue.js可以很方便的实现数据的绑定和更新,有时需要对一个一维数组进行分组以方便显示,循环可以直接使用v-for,那分组呢?这里需要用到vue的computed特性,将数据动态计算分组。

代码如下:

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <meta charset="utf-8" />
 <script src="Scripts/vue.js"></script>
</head>
<body>
 <!--这是我们的View-->
 <div id="app">
  <table>
   <tbody>
    <tr v-for="(row,i) in listTemp">
     <td v-for="(cell,j) in row">
      <div :id="'T_'+(i*3+j)">Data-{{cell}}</div>
     </td>
    </tr>
   </tbody>
  </table>
 </div>
</body>
</html>
<script src="Scripts/vue.js"></script>
<script>
 // 创建一个 Vue 实例或 "ViewModel"
 // 它连接 View 与 Model
 new Vue({
  el: '#app',
  data: {
   list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
  },
  computed: {
   listTemp: function () {
    var list = this.list;
    var arrTemp = [];
    var index = 0;
    var sectionCount = 3;
    for (var i = 0; i < list.length; i++) {
     index = parseInt(i / sectionCount);
     if (arrTemp.length <= index) {
      arrTemp.push([]);
     }
     arrTemp[index].push(list[i]);
    }
    return arrTemp;
   }
  },
 })
</script>

在computed中以3个元素为一组来动态分组,在绑定数据的地方使用嵌套的v-for循环,结果如下图(3列4行)

Vue中v-for的数据分组实例

这里还对包裹数据的每个div的id作了特别的处理,动态产生id,每个id都有一个字符串前缀T,后面是数据的索引,索引采用i*3+j计算获得,以便于对应到原始的数据list。

Vue中v-for的数据分组实例

以上这篇Vue中v-for的数据分组实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
认识延迟时间为0的setTimeout
May 16 Javascript
javascript 模式设计之工厂模式详细说明
May 10 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
Jan 19 Javascript
解决URL地址中的中文乱码问题的办法
Feb 10 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
Oct 17 Javascript
vue 设置路由的登录权限的方法
Jul 03 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
TS 类型兼容教程示例详解
Sep 23 Javascript
使用vue中的v-for遍历二维数组的方法
Mar 07 #Javascript
JavaScript中使用import 和require打包后实现原理分析
Mar 07 #Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 #Javascript
在vue项目中,使用axios跨域处理
Mar 07 #Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 #Javascript
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 #Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 #Javascript
You might like
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
js实现分页功能
2017/05/24 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python发送Email方法实例
2014/08/21 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
Python中偏函数用法示例
2018/06/07 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Python之变量类型和if判断方式
2020/05/05 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
复核员上岗演讲稿
2014/01/05 职场文书
销售个人求职信范文
2014/04/28 职场文书
法人任命书范本
2014/06/04 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript