Vue 允许自定义过滤器。Vue filters 私有过滤器可被用作一些常见的文本格式化。Vue filters 私有过滤器可以用在两个地方,mustache 插值 和 v-bind 表达式。
Vue filters 私有过滤器应该添加在 JavaScript 表达式的尾部,由管道符指示。Vue filters 全局过滤器 就是所有的 VM 实例都是共享的,而 Vue filters 私有过滤器 是单个 VM 实例私有的。
Vue 过滤器调用的时候,采用的是就近原则,如果 Vue 私有过滤器和 Vue 全局过滤器名称一致,这时候优先调用私有过滤器。
var vm = new Vue({
el :'#app',
data:{
msg:'Hello HaiCoder'
},
filters :{
method1:function(){}
}
})
过滤器中的 function,第一个参数,是规定死的,永远都是过滤器管道符前面传递过来的数据。
<!DOCTYPE html>
<html>
<head>
<title>Vue filter 私有过滤器</title>
<script type="text/javascript" src="./lib/vue-2.6.10.min.js"></script>
</head>
<style type="text/css">
</style>
<body>
<div id="app">
<p>{{msg}}</p>
<p>{{msg | msgAppend}}</p>
<p>嗨客网(www.haicoder.net)</p>
</div>
</body>
<script type="text/javascript">
var vm = new Vue({
el :'#app',
data:{
msg:'Hello HaiCoder'
},
filters:{
msgAppend:function(msg){
return msg + ', Hello Vue Filter';
}
}
})
</script>
</html>
浏览器运行效果如下图所示:
我们看到,第一个 msg 的内容被原样输出了。第二个 msg 的内容,被使用 Vue filter 将原来的 msg 内容后面增加了 Hello Vue Filter 字符串。
<!DOCTYPE html>
<html>
<head>
<title>Vue filter 私有过滤器</title>
<script type="text/javascript" src="./lib/vue-2.6.10.min.js"></script>
</head>
<style type="text/css">
</style>
<body>
<div id="app">
<p>{{msg}}</p>
<p>{{msg | msgAppend(', Hello Vue Filter')}}</p>
<p>嗨客网(www.haicoder.net)</p>
</div>
</body>
<script type="text/javascript">
var vm = new Vue({
el :'#app',
data:{
msg:'Hello HaiCoder'
},
filters:{
msgAppend:function(msg, data){
return msg + data;
}
}
})
</script>
</html>
浏览器运行效果如下图所示:
我们看到,第一个 msg 的内容被原样输出了。第二个 msg 的内容,被使用 Vue filter 将原来的 msg 内容后面增加了 Hello Vue Filter 字符串。
Vue 允许自定义过滤器。Vue filters 私有过滤器可被用作一些常见的文本格式化。Vue filters 私有过滤器可以用在两个地方,mustache 插值 和 v-bind 表达式。