vue过滤器

Vue中可以自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示。

1、简单过滤器

<!--在v-bind中-->
<div v-bind:id="taskId | addId"></div>

<!--在双花括号中-->
<div>{{message | addStr}}</div>

举个例子,从后端拿到一个状态,状态值为1,2,3,4,需要根据状态值展示状态,html代码:

<ul>
   <li v-for="(items,index) in arr" :key=index>{{items.status | showStatus}}</li>
</ul>

js中:

<script>
    export default {
        data(){
            return{
                arr:[
                    {
                        count:22,
                        status:1
                    },
                    {
                        count:33,
                        status:2
                    },
                    {
                        count:55,
                        status:3
                    },
                    {
                        count:44,
                        status:4
                    }
                ]
                
            }
        },
        filters:{    //定义过滤器
            showStatus:function(value){
                let status = '';
                if(value == 1){
                    status = '未完成';
                }else if(value == 2){
                    status = '未提交';
                }else if(value == 3){
                    status = '审核中';
                }else{
                    status = '已审核';
                }
                return status;
            }
        }
    }
</script>

页面效果:
在这里插入图片描述

2、多个过滤器

过滤器函数总接收表达式的值 (之前的操作链的结果) 作为第一个参数。在上述例子中,过滤器showStatus函数将会收到 items.status的值作为第一个参数。
过滤器可以串联:

<ul>
   <li v-for="(items,index) in arr" :key=index>{{items.status|showStatus|showCount}}</li>
</ul>

在这个例子中,showStatus被定义为接收单个参数的过滤器函数,表达式 items.status的值将作为参数传入到函数中。然后继续调用同样被定义为接收单个参数的过滤器函数 showCount,将 showStatus的结果传递到 showCount中。

3、过滤器函数传参

过滤器是 JavaScript 函数,因此可以接收参数:

<ul>
   <li v-for="(items,index) in arr" :key=index>{{items.status | showStatus('arg1','arg2')}}</li>
</ul>

这里,showStatus被定义为接收三个参数的过滤器函数。其中 showStatus的值作为第一个参数,普通字符串 ‘arg1’ 作为第二个参数,表达式 arg2 的值作为第三个参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值