Vue实现表格中对数据进行转换、处理的方法


Posted in Javascript onSeptember 06, 2018

众所周知,后端从Mysql取出的数据,一般是很难单独处理某一个Key的数据的(需要处理的话,可能会浪费大量的性能。而且对页面加载时间有很大的影响),所以,从数据库取出的数据。只能由前端进行处理。但是在Vue中,如果采用了element等组件,利用数据绑定的特性,也是很难对表格遍历的数据进行单独行的处理的。

我们这边取一个例子来说。比如Mysql datetime 类型的数据与我们一般的显示的形式是不一样的,为了用户更好的体验,势必需要对时间格式进行转换的。

下图是从mysql中默认取出的datetime 类型时间

Vue实现表格中对数据进行转换、处理的方法

我们一般时间显示都是是XXXX年XX月XX日 XX:XX的。上图与我们认知习惯很不一样,肯定不能这样的。下面我们来做时间的转换。

<!- 图中列表的.vue ->
 <template>
 <div class="fromlist">
  <div class="filter-container">
  <el-button type="primary" size="small">新增用户</el-button>
  </div>
  <div>
  <el-table
   :data="tableData"
   border
   style="width: 100%" size="small">
   <el-table-column
   align="center"
   prop="id"
   label="用户ID"
   width="100">
   </el-table-column>
   <el-table-column
   align="center"
   prop="username"
   label="用户名"
   width="100">
   </el-table-column>
   <el-table-column
   align="center"
   prop="ip"
   label="用户IP"
   width="100">
   </el-table-column>
   <el-table-column
   align="center"
   prop="inittime"
   label="注册时间">
   </el-table-column>
   <el-table-column
   align="center"
   prop="endtime"
   label="最后登录时间">
   </el-table-column>
   <el-table-column
   align="center"
   prop="isdel"
   label="状态">
   </el-table-column>
   </template>
   </el-table-column>
  </el-table>
  </div>
 </div>
 </template>

如上,是.vue文件中,上图列表的代码。我们需要在相应需要处理的<el-table-column> 列中加上属性项:formatter=FunctionName。将该列数据与处理函数进行绑定。下面做一个演示:

<!- 在相应需要处理的el-table-column 中,添加formatter属性,并绑定了名为formatTime的处理函数 ->
 <el-table-column
   align="center"
   prop="endtime"
   :formatter="formatTime"
   label="最后登录时间">
 </el-table-column>

而后,我们在该页面的Vue实例中的methods中编写formatTime函数

// row[column.property] 能读取到该行该列的数据。代码中实现了时间格式的转换
 formatTime(row, column) {
   const date = new Date(row[column.property])
   return date.getFullYear() + '年' +
   date.getMonth() + '月' +
   date.getDate() + '日 ' +
   date.getHours() + ':' +
   date.getMinutes()
 }

函数中的功能可以是各种各样的,但是必须return 数据回列表进行显示。其中 row 包含着后端传来的Json数据。column包含着各种辅助数据。其中row[column.property]是可以直接取到该行该列的数据,以供处理的。

流程:在HTML代码中找到需要处理的el-table-column使用formatter进行函数绑定,而后在Vue实例methods中编写函数,即可完成处理。

该流程适合大部分表格数据的处理。

Vue实现表格中对数据进行转换、处理的方法

PS:下面看下Vue表格中时间的处理

Vue中表格的数据应该来自后台数据库,然后从数据库中读取到的数据,时间格式可能有些不同,我们可以根据实际需要来对这个时间进行转化。

这里介绍一个js库,它提供了强大的日期处理功能,功能强大且只有2k大小。安装方式简单,只需要npm install fecha --save即可。

Formatting(日期格式化)

fecha提供一个format方法。fecha.format接收一个Date对象(或一个时间戳)和一个字符串形式的日期格式,然后返回一个字符串(处理后的日期)。

注意: 当传入的参数无效时,fecha会报错

Parsing(日期解析)

fecha另外提供了一个parse方法。和format类似,fecha.parse接收一个Date字符串和一个字符串形式的日期格式,然后返回一个Date对象。

注意: 当传入的参数无效时,fecha会报错

fecha还有其他很多功能,这里不做具体介绍,有兴趣请自行百度学习。

这里放一个demo,以供参考。

html

<el-table-column prop="time" label="时间" :formatter="dateFormat" min-width="100"></el-table-column>

js

methods: {
  dateFormat(row, column, cellValue) {
  return cellValue ? fecha.format(new Date(cellValue), 'YYYY-MM-DD') : '';
  }
 }

总结

以上所述是小编给大家介绍的Vue实现表格中对数据进行转换、处理的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
使用js简单实现了tree树菜单
Nov 20 Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 Javascript
微信小程序 图片上传实例详解
May 05 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
JavaScript实现短信倒计时60s
Oct 09 Javascript
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
Vue兼容ie9的问题全面解决方案
Jun 19 Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
vue插件实现v-model功能
Sep 10 Javascript
node 解析图片二维码的内容代码实例
Sep 11 Javascript
vue生成文件本地打开查看效果的实例
Sep 06 #Javascript
vuejs实现折叠面板展开收缩动画效果
Sep 06 #Javascript
在vue中读取本地Json文件的方法
Sep 06 #Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 06 #Javascript
解决vue同一slot在组件中渲染多次的问题
Sep 06 #Javascript
vue template中slot-scope/scope的使用方法
Sep 06 #Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 #Javascript
You might like
第十五节--Zend引擎的发展
2006/11/16 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
超清晰的document对象详解
2007/02/27 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
Python写的贪吃蛇游戏例子
2014/06/16 Python
Python的Django框架中的表单处理示例
2015/07/17 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
档案检查欢迎词
2014/01/13 职场文书
小学运动会报道稿
2014/10/04 职场文书
新党员入党决心书
2015/09/22 职场文书
初三语文教学反思
2016/03/03 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
python小程序之飘落的银杏
2021/04/17 Python
instantclient客户端 连接oracle数据库
2022/04/26 Oracle