天天看點

vue-過濾器

1、vue過濾器簡介

vue過濾器就是用來過濾模型資料,在顯示之前進行資料處理和篩選。

2、vue過濾器文法

文法:{{ data | filter1(參數) | filter2(參數) }}

3、vue内置過濾器

  vue1.0中有很多過濾器,例如currency,uppercase,lowercase,limitBy,orderBy,filterBy

  vue2.0中已經删除了所有内置過濾器,全部被廢除。如何解決?

 1)使用第三方工具庫

  如:loadash庫、date-fns庫(日期格式化)、accounting.js(對貨币格式化)等

 2)使用自定義過濾器

4、自定義過濾器

 分類:全局過濾器,局部過濾器 

4.1 自定義全局過濾器

  文法:使用全局方法Vue.filter(過濾器ID,過濾器函數),過濾器寫在window.onload=function(){ new Vue...}的外面。

4.2 自定義局部過濾器

 文法:使用全局方法filters:{過濾器ID:(過濾器參數1,過濾器參數2...)=>{函數回調}},過濾器寫在new Vue裡面。

1  1 <!DOCTYPE html>
 2  2 <html lang="en">
 3  3 <head>
 4  4   <meta charset="UTF-8">
 5  5   <title>自定義過濾器</title>
 6  6 <!--  引入vue-->
 7  7   <script src="../vue/vue.js"></script>
 8  8   <script>
 9  9     //自定義全局過濾器,将小于10的數字十位補0
10 10     Vue.filter('addZero',function(data){
11 11       console.log(data)
12 12       return data<10?'0'+data:data  //如果data小于10,給十位補0,否則傳回data
13 13     });
14 14     //自定義全局過濾器,将時間戳顯示成年月日時分秒
15 15     Vue.filter('date',data=>{
16 16       let d = new Date(data);
17 17       return d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate()+' '+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds()
18 18     })
19 19     window.onload=function(){
20 20       new Vue({
21 21         el:'#hello',
22 22         //data用來存儲資料
23 23         data:{
24 24           currentTime:Date.now()
25 25         },
26 26         //methods用來存儲方法
27 27         methods:{
28 28           
29 29         },
30 30         //自定義局部過濾器,将數字保留3位小數
31 31         filters:{
32 32           number:(data,n)=>{
33 33             //console.log(data,n)
34 34             return data.toFixed(n)
35 35           }
36 36         }
37 37       })
38 38     }
39 39   </script>
40 40 </head>
41 41 <body>
42 42 <div id="hello">
43 43   <!-- 将小于10的數字十位補0 -->
44 44   <h3>{{8|addZero}}</h3>
45 45   <!-- 将數字保留3位小數 -->
46 46   <h3>{{12.3456789|number(3)}}</h3>
47 47   <!-- 将時間戳顯示成年月日時分秒 -->
48 48   <h3>{{currentTime|date}}</h3>
49 49 </div>
50 50 </body>
51 51 </html>      
vue
上一篇: vue-模闆