Vue过滤器 — 如何将filter.js文件中的所有方法优雅的挂载到Vue.filter上

背景:在vue-cli环境下,后台返回 createTime: “2016-01-29T00:49:53.000+0000” 这样的时间格式,前端展示不太友好,同时数据格式是有规律的,且适用范围较大,所以第一想到的是vue中的filter。但一般项目中会将所有的filter函数统一存放在filter.js中,那么我们怎么样可以把filter.js中的所有方法优雅的挂载到Vue.filter上供我们使用呢?

1、全局过滤器

在项目中创建filter.js文件,如下图:
在这里插入图片描述
filter.js中,用 export 将 formatDateTime 方法导出,代码如下:

export function formatDateTime (msg){
    var dateee = new Date(msg).toJSON();
    var date = new Date(+new Date(dateee)+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,'') 
    return date
}

main.js中,引入filter文件,并将文件中所有的函数处理方法依次挂载到Vue.filter上,代码如下:

import * as filters from './utils/filter'; // 全局filter

Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key]);
});

这里用 import * as 的形式将filter文件引入,将 filter.js文件中所有 export 导出的函数组合成一个数组返回

Object.keys(filters) 的console结果
在这里插入图片描述
此时,filter.js中函数的名称即为过滤器的名称。

在vue文件中的使用:

<template>
  <div>
    {{createTime | formatDateTime}}
  </div>
</template>
<script>
export default {
  data() {
    return {
      createTime: "2016-01-29T00:49:53.000+0000"
    };
  }
};
</script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值