过滤器介绍
- 过滤器用于用作一些常见的文本格式化,支持自定义过滤器,过滤器支持参数传递
- 仅mustache 插值和 v-bind 指令(2.1.0 以下版本不支持)可以使用过滤器
- 过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符链接:
{{表达式|过滤器1|过滤器2|过滤器3}}
简单过滤器例子
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue之过滤器</title>
<script src="https://unpkg.com/vue@2.3.4/dist/vue.js"></script></script>
</head>
<body>
<div id="app">
<p>{{message}}</p>
<p>{{message | uppercase}}</p>
<p>{{message | reverse | uppercase}}</p>
</div>
<script>
Vue.filter('reverse', function (value) {
return value.split('').reverse().join('')
})
new Vue({
el: '#app',
data: {
message:'hello world'
}
})
</script>
</body>
</html>
过滤器扩展
自定义全局过滤器
#全局过滤器所有地方都可以使用
Vue.filter('reverse', function (value) {
return value.split('').reverse().join('')
})
自定义局部过滤器
#仅在el指定的dom及子节点中可以使用
new Vue({
el: '#add',
data:{
src:'hello'
},
filters: {
capitalize: function (value) {
alert(value);
return value+' suman';
}
}
});
传递参数给过滤器
过滤器是 JavaScript 函数,因此可以接受参数:
{{ message | filterA('arg1', arg2) }}
#这里,message将传给过滤器作为第一个参数
#字符串 'arg1' 将传给过滤器作为第二个参数
#arg2 表达式的值将被求值然后传给过滤器作为第三个参数。