首页 > 技术文章 > vue-过滤器

AnnLing 2021-08-24 17:38 原文

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>

 

推荐阅读