1.全局和本地过滤器:你可以跨所有组件访问全局过滤器,而本地过滤器只允许你在其定义的组件内部使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /** * 给商品价格加补0 * @param {*} value */ const addZero=function(value){ var value=Math.round(parseFloat(value)*100)/100; var xsd=value.toString().split("."); if(xsd.length==1){ value=value.toString()+".00"; return value; } if(xsd.length>1){ if(xsd[1].length<2){ value=value.toString()+"0"; } return value; } } export default { addZero } |
1 | import filters from '../../../static/filter/filter'; |
1 | {{content | addZero}} |
下面这个示例展示了过滤器被注册到一个Vue组件中。这个过滤器的功能是将字母变成大写,局部过滤器存储在Vue组件中,关键词filters属性中的函数。这个时候你想注册多少个就能注册多少个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | let app = new Vue({ el: '#app', data () { return { name: 'w3cplus.com' } }, // 声明一个局部过滤器 filters: { Upper: function (value) { return value.toUpperCase() } } }) <div id="app"> <h1>{{ name | Upper }}</h1> </div> |
关于过滤器,我最喜欢的一件事是能够使用管道(|)符号对它们进行串连,并通过一系列过滤器转换一个值。让我们再看一个价格的例子,并让这个价格只保留两位小数,然后加上美元符号。虽然我们可以使用一个单独的过滤器来实现它,但我们也可能想要使用toUSD过滤器。在这种情况下,分离和串连过滤器是一处方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Vue.filter('toFixed', function (price, limit) { return price.toFixed(limit) }) Vue.filter('toUSD', function (price){ return `$${price}` }) let app = new Vue({ el: '#app', data () { return { price: 435.333 } } }) <div id="app"> <h1> {{ price | toFixed(2) | toUSD }} </h1> </div> |
传参数时候,过滤器第一位默认是value,也就是说形参第二位才是接收参数。当然,过滤器它的功能仅仅不像文章中的这么简单,他可以做任何你想做的事情。如果你对Vue其他的自定义过滤器功能感兴趣的话,可以阅读@wy-ei在Github上创建的Vue过滤器集合。
支付宝扫一扫打赏
微信扫一扫打赏
共 0 条评论关于"秒懂Vue2中过滤器基本使用,世界如此简单"
最新评论