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 相关文章推荐
js 刷新页面的代码小结 推荐
Apr 02 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
Jul 05 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
Oct 14 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
Dec 15 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
Oct 10 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
解析Vue.js中的组件
Feb 02 Javascript
nuxt.js 缓存实践
Jun 25 Javascript
JavaScript箭头函数中的this详解
Jun 19 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
如何通过简单的代码描述Angular父组件、子组件传值
Apr 07 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
example1.php
2006/10/09 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
js实现蒙版效果
2020/01/11 Javascript
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Python的形参和实参使用方式
2019/12/24 Python
python字符串下标与切片及使用方法
2020/02/13 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
python能做哪方面的工作
2020/06/15 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
工程师自我评价怎么写
2013/09/19 职场文书
生产车间主任的个人自我鉴定
2013/10/25 职场文书
离职证明标准格式
2014/09/15 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js