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 相关文章推荐
jquery $.ajax各个事件执行顺序
Oct 15 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
浅谈jQuery.easyui的datebox格式化时间
Jun 25 Javascript
微信小程序 Tab页切换更新数据
Jan 05 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
Jun 09 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
详解Vue.js项目API、Router配置拆分实践
Mar 16 Javascript
Vuex入门到上手教程
Jun 20 Javascript
微信小程序网络请求封装示例
Jul 24 Javascript
微信小程序 scroll-view的使用案例代码详解
Jun 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
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
php正则修正符用法实例详解
2016/12/29 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
为数据添加append,remove功能
2006/10/03 Javascript
FCK调用方法..
2006/12/21 Javascript
js停止输出代码
2008/07/20 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
如何在python中实现线性回归
2020/08/10 Python
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
安全负责人任命书
2014/06/06 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers