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 相关文章推荐
JavaScript中的new的使用方法与注意事项
May 16 Javascript
window.ActiveXObject使用说明
Nov 08 Javascript
JQuery动画和停止动画实例代码
Mar 01 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
Jul 02 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
使用JavaScript制作一个简单的计数器的方法
Jul 07 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
jquery.zclip轻量级复制失效问题
Jan 08 Javascript
node.js实现登录注册页面
Apr 08 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
JS SetInterval 代码实现页面轮询
Aug 11 Javascript
JS实现页面内跳转的简单代码
Sep 03 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
Protoss热键控制
2020/03/14 星际争霸
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
JS实现页面打印功能
2017/03/16 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
利用python 读写csv文件
2020/09/10 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
机关道德讲堂实施方案
2014/03/15 职场文书
物流管理专业求职信
2014/05/29 职场文书
抗震救灾标语
2014/06/26 职场文书
专职安全员岗位职责
2015/04/11 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python