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函数
Dec 22 Javascript
JQuery 引发两次$(document.ready)事件
Jan 15 Javascript
javascript 处理null及null值示例
Jun 09 Javascript
jQuery获得指定元素坐标的方法
Apr 14 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
如何使用angularJs
May 08 Javascript
JS实现简单获取最近7天和最近3天日期的方法
Apr 18 Javascript
react中hook介绍以及使用教程
Dec 11 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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
功能强大的php文件上传类
2016/08/29 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
js打造数组转json函数
2015/01/14 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python实例之wxpython中Frame使用方法
2014/06/09 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
触电现场处置方案
2014/05/14 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
课外活动实习计划
2015/01/19 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
公司租车协议书
2015/01/29 职场文书
行政助理岗位职责
2015/02/10 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
走近毛泽东观后感
2015/06/04 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫