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 相关文章推荐
Prototype使用指南之hash.js
Jan 10 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
May 11 Javascript
jquery制作LED 时钟特效
Feb 01 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
Javascript获取background属性中url的值
Oct 17 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
javascript设计模式之策略模式学习笔记
Feb 15 Javascript
slideToggle+slideup实现手机端折叠菜单效果
May 25 Javascript
JavaScript中in和hasOwnProperty区别详解
Aug 04 Javascript
常用的9个JavaScript图表库详解
Dec 19 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 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
PHP自动更新新闻DIY
2006/10/09 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
PHP中比较时间大小实例
2014/08/21 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
JS变量及其作用域
2017/03/29 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
django 自定义用户user模型的三种方法
2014/11/18 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
详解Django 时间与时区设置问题
2019/07/23 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
巴西女装购物网站:Eclectic
2018/04/24 全球购物
毕业生文员求职信
2013/11/03 职场文书
求职信范文怎么写
2014/01/29 职场文书
医德医风演讲稿
2014/05/20 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫