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实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
js中获取事件对象的方法小结
Mar 13 Javascript
浅谈checkbox的一些操作(实战经验)
Nov 20 Javascript
alert和confirm功能介绍
May 21 Javascript
node.js中的fs.chownSync方法使用说明
Dec 16 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
常用的Javascript数据验证插件
Aug 04 Javascript
第一次接触神奇的Bootstrap基础排版
Jul 26 Javascript
js原生之焦点图转换加定时器实例
Dec 12 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
Angular路由ui-router配置详解
Aug 01 Javascript
Bootstrap 按钮样式与使用代码详解
Dec 09 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
用PHP4访问Oracle815
2006/10/09 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
定义select的边框颜色
2008/04/28 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
vue axios 二次封装的示例代码
2017/12/08 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
js实现简易ATM功能
2020/10/27 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
python脚本定时发送邮件
2020/12/22 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
12岁生日演讲稿
2014/05/14 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
六五普法心得体会2016
2016/01/21 职场文书
如何在Python项目中引入日志
2021/05/31 Python
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫