vue----filter过滤器

1.全局过滤器-------------可在所有的组件中进行使用
如果有数据需要过滤,就在该组件中使用过滤器 
 
全局过滤器
参1:过滤器名称(函数名)
参2:过滤器实现的函数(数据处理函数)
 
使用的方式:通过管道符使用  |
 
import Vue from "vue";
 
Vue.filter("过滤器名称",("参1""参2")=>{
    参1:需要处理的数据,即 管道符 | 前的数据
    参2:传递的参数
    
 //return的值直接取代管道符 | 前的值
})
 
2.局部过滤器-----------------只可在当前组件中进行使用
 
<template>
    <div class="details">
        <div class="con">
            <p>名称:{{name}}</p>
// 使用过滤器,vue会直接把 要处理的数据 放入过滤器的第一个参数位,即sum函数中有一个实参price ---------->sum(price),但是price不能写,写上的第一个参数相当于传递的第二个实参----------->传递给数据处理函数的第二个形参
////过滤器含参数传递时,第一个参数会放入数据处理函数的第二个参数位,如果有其他参数依次类推
            <p>单价:{{price | sum()}}</p>
            <p>数量:{{num}}</p>
            <p>总价:{{price * num}}</p>
 
            <hr>
            <p>反转后:{{message | res()}}</p>
 
 
            <p>{{message2 | re()}}</p>
        </div>
    </div>
</template>
 
export default{ 
 filters:{
        //key为过滤器的名称
        //value为过滤器实现的函数,
       //参1:val  为管道 | 前面的值
        //参2:传递的参数

        "sum":(val,sign)=>{
            if(sign){
                return sign + val
            }else{
                return "heng" + val
            }
        }
 
}
 
全局过滤器案例
 
<script>
import Vue from "vue";
 
//过滤金币符号
Vue.filter("sum",(val,sign)=>{
    //参1:val  为管道 | 前面的值
    //参2:传递的参数
    if(sign){
        //如果传了参:
        return sign + val;
    }else{
        //如果没有传参:
        return "1111111" + val;
    }
    //返回的值直接取代管道符 | 前的值
})
-------------------------------------------------------------------- 
 
//文字逆序
Vue.filter("res",(val)=>{
    return val.split("").reverse().join("");
})
------------------------------------------------------------ 
//匹配替换
Vue.filter("re",(val)=>{
    if(/这/g.test(val)){
        return val.replace(/这/g,"");
    }
})
---------------------------------------------------------------- 
//时间过滤器
Vue.filter("time",()=>{
    var data = new Date();
    var Y = data.getFullYear();
    var m = data.getMonth() + 1;
    var d = data.getDate();
    var h = data.getHours();
    var minu = data.getMinutes();
    var s = data.getSeconds();
    if(m < 10) {
        m = '0' + m;
    }
    if(d < 10) {
        d = '0' + d;
    }
    if(h < 10) {
        h = '0' + H;
    }
    if(minu < 10) {
        minu = '0' + i;
    }
    if(s < 10) {
        s = '0' + s;
    }
    var t = Y + '-' + m + '-' + d;
    return t; //年月日
 
})

局部过滤器案例

export default {
    data(){
        return{
            message:"王磊",
            message2:"这这这这话"
        }
    },
    props:["name","price","num"],
    //局部过滤器
    filters:{
        //key为过滤器的名称
        //value为过滤器实现的函数
        "sum":(val,sign)=>{
            if(sign){
                return sign + val
            }else{
                return "heng" + val
            }
        }
 
 
    }
 
}
</script>
后端给字符串,前端进行过滤
 

猜你喜欢

转载自www.cnblogs.com/SRH151219/p/10423141.html
今日推荐