平时我们在vue中使用过滤器时,在模板中定义的过滤器不能在其他模板中使用,所以要在每个模板中定义自己的filter,这样就会出现很多重复的代码,那有没有办法定义一个公用的filter,减少代码的重复呢?
下面就给大家展示下使用最多且有效的方法吧!
•首先在公用js中定义一个通用的filter.js,如下图所示,记得一定要把代码整个export出来
const vFilter={
numFilter:function (value) {
// 截取当前数据到小数点后两位
let realVal = Number(value).toFixed(2)
return realVal
}
}
export default vFilter
然后在main.js中引入
import vueFilter from './js/filter'
for (let key in vueFilter){
Vue.filter(key,vueFilter[key])
}
这样我们就可以在模板中尽情使用啦,比如说
<p class="goods-info-p ">¥{{goodsItem.goodsPrice|numFilter}}</p>
局部的方法
局部页面中使用
<p>{{msg | newFiler}}</p>
filters:{
newFiler:function(data){
return data+'我是局部的过滤器'
}
}