vue过滤器filter
简单介绍一下过滤器,顾名思义,过滤就是一个数据经过了这个过滤之后出来另一样东西,可以是从中取得你想要的,或者给那个数据添加点什么装饰,那么过滤器则是过滤的工具。
例如,从['abc','abd','ade']数组中取得包含‘ab’的值,那么可通过过滤器筛选出来‘abc’和‘abd’;把‘Hello’变成‘Hello World’,那么可用过滤器给值‘Hello’后面添加上‘ World’;或者把时间节点改为时间戳等等都可以使用过滤器。
Vue.filtr(‘globalFilter’,function(value){
Return value +“!!!”
})
组件过滤器(局部)
filters:{
componentFilter:function(value){
return value +“!!!”
}
},
上面有种写法有个需要注意的问题:全局注册时是filter,没有s的。而组件过滤器是filters,是有s的,这要注意了,虽然你写的时候没有s不报错,但是过滤器是没有效果的。
用法:1:<div>{{‘2018’| filterA | filterB}}</div>
filters:{
filterA:function(value){
return value +’年’
},
filterB:function(value){
Return value +”hello world”
}
},
结果:2018年 Hello World!
2,<div>{{‘2018’| filterA(‘07’,’17’)}}</div>
filters:{
filterA:function(value,arg1,arg2){
return value + ‘-’+arg1 + ‘-’ + arg2
}
}
结果: 2018-07-17
3 <div>结果 :{{‘Hello’,’World’| filterB}}</div>
filters:{
filterB:function(value,value2){
return value +’’+value2
}
}
结果:Hello World
filter过滤数组。显示一个数组的过滤或排序副本,而不实际改变或重置原始数据(非变异方法),可以使用filter()方法。
4 在遍历中运用
<div id=“div”>
<li v-for=”n in evenNumbers”>{{n}}</li>
</div>
<script>
varVm = new Vue({
el:”#div”,
data:{
numbers:[1,2,3,4,5]
},
计算属性中
computed:{
eventNumber:function(){
return this.number.filter(function(number){
return number<4
})
}
}
})
</script>
data:{
number:[1,2,3,4,5]
},
在methods里面
methods:{
even:function(numbers){
return numbers.filter(function(number){
return number % 2 === 0
})
}
}