vue 全局注册过滤器 filter

随着 vue 的脚手架不断更新,搭建项目的时候很多东西都需要我们自己来配置,比如说过滤器 filter。

以我个人习惯为例:
1、创建一个 filters.js 文件,在这里定义多个过滤器

//时间过滤器
let formatTime = time => {
	if (time) {
		var a = new Date(time).toJSON();
		var date = new Date(+new Date(a) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
		return date
	}
}
export { formatTime };

2、在 main.js 里面引入,并使用

//过滤器
import * as filters from './filters/index.js'
Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key])
})

3、全局使用过滤器

<p>{{ time | formatTime }}</p>

有一个问题使用的时候 Object.keys 为什么这样写呢?

首先:
Vue.filter 方法接收两个参数(过滤器名,过滤器函数)

其次:
import * as filters from ‘./filters/index.js’ 这样引入会把 filter.js 文件里面暴露出来的过滤器全部通过 filters 获取到,filters 的数据结构是

{
	过滤器名1:过滤器函数1,
	过滤器名2:过滤器函数2,
}

使用 Object.keys 方法取出所有的 key 生成一个数组,用 forEach 遍历数组把 key 和对应的 value 作为参数传递给 Vue.filter 方法,这样就可以把每一个自定义的过滤器绑定到 vue 的 filter 上面。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值