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 相关文章推荐
CCPry JS类库 代码
Oct 30 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
Nov 04 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
ExtJs纵坐标值重复问题的解决方法
Feb 27 Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
Bootstrap CSS布局之列表
Dec 15 Javascript
详解javascript表单的Ajax提交插件的使用
Dec 29 Javascript
JS正则获取HTML元素的方法
Mar 31 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 Javascript
JavaScript实现简单的文本逐字打印效果示例
Apr 12 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
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python unittest实现api自动化测试
2018/04/04 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Python实现序列化及csv文件读取
2020/01/19 Python
什么是python的必选参数
2020/06/21 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
幼儿园保教管理制度
2014/02/03 职场文书
房屋转让协议书范本
2014/04/11 职场文书
干部考核评语
2014/04/29 职场文书
驻村工作先进事迹
2014/08/14 职场文书
银行转正自我鉴定
2014/09/29 职场文书
个人向公司借款协议书
2014/10/09 职场文书
朋友离别感言
2015/08/04 职场文书
优质护理服务心得体会
2016/01/22 职场文书