vue实现的封装全局filter并统一管理操作示例


Posted in Javascript onFebruary 02, 2020

本文实例讲述了vue实现的封装全局filter并统一管理操作。分享给大家供大家参考,具体如下:

在前后端分离的项目中,经常会有后台返回的数据需要进过处理才能显示到页面上的场景。

使用最多的场景就是日期和时间的处理,后台一般返回的都是时间戳,那么我们就要对时间戳进行处理。

下面就拿封装全局的处理日期和时间的 filter 来展示如何 vue 如何封装全局 filter 并统一处理。

src 目录下新建 filters 目录用来专门存放全局过滤器,如果项目的过滤器过多,那么就要按类型分类。

我司的项目需要前台处理的数据不是太多,那么就在 filters 目录下新建一个 index.js 来存放所有的过滤器就足够了。

index.js 代码如下:

/*
  日期处理
    time:源时间戳
    type:要处理的格式 默认 xxxx年xx月xx日
      /: xxxx/xx/xx
      .: xxxx.xx.xx
      -: xxxx-xx-xx
 */
export const normalDate = (time,type) => {
  if (time) {
    var date = new Date();
    date.setTime(time);
    var year = date.getFullYear();
    var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) * 1 : date.getMonth() + 1;
    var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
    if(type == '-'){
      return year + '-' + month + '-' + day;
    }else if(type == '/'){
      return year + '/' + month + '/' + day;
    }else if(type == '.'){
      return year + '.' + month + '.' + day;
    }else{
      return year + '年' + month + '月' + day + '日';
    }
  }
}
/*
  时间处理
    time:源时间戳
    type:要处理的格式 默认 xxxx年xx月xx日 xx:xx:xx
      /: xxxx/xx/xx xx:xx:xx
      .: xxxx.xx.xx xx:xx:xx
      -: xxxx-xx-xx xx:xx:xx
 */
export const normalTime = (time,type) => {
  if (time) {
    var date = new Date();
    date.setTime(time);
    var year = date.getFullYear();
    var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) * 1 : date.getMonth() + 1;
    var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
    var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
    var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
    var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    if(type == '-'){
      return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
    }else if(type == '/'){
      return year + '/' + month + '/' + day + ' ' + hours + ':' + minutes + ':' + seconds;
    }else if(type == '.'){
      return year + '.' + month + '.' + day + ' ' + hours + ':' + minutes + ':' + seconds;
    }else{
      return year + '年' + month + '月' + day + '日' + ' ' + hours + ':' + minutes + ':' + seconds;
    }
  }
}

然后在 main.js 中引入注册即可使用:

import * as filters from './filters'
Object.keys(filters).forEach(key => Vue.filter(key, filters[key]));

在页面中使用:

<p>{{time | normalDate('/')}}</p> //这样时间戳就会转化为xxxx/xx/xx的格式

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
列表内容的选择
Jun 30 Javascript
javascript 硬盘序列号+其它硬件信息
Dec 23 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
Nov 15 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
JS实现仿新浪黄色经典滑动门效果代码
Sep 27 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
Apr 29 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
gulp安装以及打包合并的方法教程
Nov 19 Javascript
基于iview的router常用控制方式
May 30 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
js实现碰撞检测
Jan 29 Javascript
node 版本切换的实现
Feb 02 #Javascript
vue路由缓存的几种实现方式小结
Feb 02 #Javascript
vue简单封装axios插件和接口的统一管理操作示例
Feb 02 #Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 #Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 #jQuery
基于node+vue实现简单的WebSocket聊天功能
Feb 01 #Javascript
基于vue和websocket的多人在线聊天室
Feb 01 #Javascript
You might like
phpfans留言版用到的install.php
2007/01/04 PHP
PHP编程函数安全篇
2013/01/08 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python数据结构之二叉树的遍历实例
2014/04/29 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Django-migrate报错问题解决方案
2020/04/21 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
电子商务应届生求职信
2013/11/16 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
护士感人事迹
2014/05/01 职场文书
表彰大会策划方案
2014/05/13 职场文书
面试必备的求职信
2014/05/25 职场文书
授权委托书协议书
2014/10/16 职场文书
单位考核聘任报告
2015/03/02 职场文书
优秀创业计划书分享
2019/07/19 职场文书