1. 程式人生 > >vue自定義過濾器的建立和使用

vue自定義過濾器的建立和使用

過濾器的作用:實現資料的篩選、過濾、格式化。

vue1.*版本是有內建的過濾器,但是在vue2.*所有的版本都已經沒有自帶的過濾器了。

1、過濾器建立   過濾器的本質 是一個有引數 有返回值的方法   new Vue({     filters:{       myCurrency:function(myInput){         return 處理後的資料       }     }   })

2、過濾器使用 語法:   <any>{{表示式 | 過濾器}}</any> 舉個例子:   <h1>{{price | myCurrency}}</h1>

3、過濾器高階用法

在使用過濾器的時候,還可以指定引數,來告訴過濾器按照引數進行資料的過濾。

①如何給過濾器傳參? <h1>{{price | myCurrency('¥',true)}}</h1> ②如何在過濾器中接收到? new Vue({   filters:{     //myInput是通過管道傳來的資料     //arg1在呼叫過濾器時在圓括號中第一個引數     //arg2在呼叫過濾器時在圓括號中第二個引數     myCurrency:function(myInput,arg1,arg2){       return 處理後的資料     }

  }

})

Demo:金額千分位格式化

<span>總消費: {{MoneyList.consumeMoney | moneyToPoint(MoneyList.consumeMoney,2)}}</span>
filters:{
        moneyToPoint:function(s,n){
            n = n > 0 && n <= 20 ? n : 2;
            s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
            let l = s.split(".")[0].split("").reverse(),
                r = s.split(".")[1];
            let t = "";
            for (let i = 0; i < l.length; i++) {
                t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
            }
            return t.split("").reverse().join("") + "." + r;
        }
    }