vue中内置过滤器怎么用

小编给大家分享一下vue中内置过滤器怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站建设、网站制作、网站维护、四川主机托管解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、商城网站建设、政府网站等各类型客户群体,为全球上1000家企业提供全方位网站维护、服务器维护解决方案。

前言

vue中过滤器filters的作用是什么?

过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数。Vue有很多很便利的过滤器,可以参考官方文档。

能够帮我们处理快速一些数据的格式----format数据格式化处理。

语法也很简单

{{ message | Filter }}
  • message: 要格式化的数据

  • Filter: 对数据格式化的方法

链式过滤

VueJs允许你链式调用过滤器,简单的来说,就是一个过滤器的输出成为下一个过滤器的输入,然后再次过滤。接下来,我们可以想象一个比较简答的例子,使用了Vue的 filterBy + orderBy 过滤器来过滤所有商品products。过滤出来的产品是属于电器类商品,并且按电器字母排序。

filterBy过滤器 :过滤器的值必须是一个数组,filterBy + 过滤条件。过滤条件是:‘string || function' + in ‘optionKeyName'

orderBy过滤器 :过滤器的值必须是一个数组,orderBy + 过滤条件。过滤条件是:‘string || array ||function' + ‘order ≥ 0 为升序 || order < 0 为降序'

接下来,我们可以看下第二个例子:我们有一个商品数组products,我们希望遍历这个数组,并把他们打印成一张清单,这个用v-for很容易实现。


 {{ product.name | capitalize }} - {{ product.price | currency }}

capitalize过滤器 :将输入的字符串首字母转换成大写字母的过滤器。currency过滤器 : 将输入的数字转换成现金的过滤器。可以跟上货币符号(默认$)和保留的小数位(默认2)。

利用上面的两个过滤器,能够很好的把一个json数组的商品清单格式化成通熟易懂的商品价格清单。

如果只想要电器类商品,可以在v-for上加过滤条件:


 {{ product.name | capitalize }} - {{ product.price | currency }}

上面的例子,就是用filterBy 过滤在 'category'中含有'electronics' 关键字的列表,返回的列表就是只含有 'electronics' 关键字的列表。

如果想要多个搜索条件:


 {{ product.name | capitalize }} - {{ product.price | currency }}

上面的例子,就是用filterBy 过滤在 'category' 和 'name' 中含有'electronics' 关键字的列表。

最后我们还需要将这个列表用字母进行排序。我们可以在 filterBy 过滤器的基础上,链式调用orderBy 过滤器。

        {{ product.name | capitalize }} - {{ product.price | currency }}  

orderBy 的排序方式默认是升序,如果想要降序,只需要加一个小于0的参数:

下面看看vue自带过滤器有哪些,并附带小示例。最后记得看看如果自定义过滤器哦!

vue自带的过滤器

capitalize(首字母大写)


 {{message | capitalize}}
var myVue = new Vue({  el: ".test",  data: {  message: "javan"  } })

上面代码输出:Javan

uppercase(全部大写)

// 初始message:abc

{{message | uppercase}}

// 上面代码输出:ABC

lowercase(全部小写)

// 初始message:ABC

{{message | lowercase}}

// 上面代码输出:abc

currency(输出金钱以及小数点)


 {{message | currency}} // 输出$520.13
 {{message | currency '¥' "2"}} //输出 $520.13
 var myVue = new Vue({  el: ".test",  data: {   message: "520.1314"  }  })

第一个参数 {String} [货币符号] - 默认值: '$'
第二个参数 {Number} [小数位] - 默认值: 2

pluralize(变复数)

如果只有一个参数,复数形式只是简单地在末尾添加一个 “s”。如果有多个参数,参数被当作一个字符串数组,对应一个、两个、三个…复数词。如果值的个数多于参数的个数,多出的使用最后一个参数。


 {{message}} {{message | pluralize 'item'}} 输出: 1 item
 
 
  •   {{item}} {{item | pluralize 'item'}}   输出: 1 item 2 items 3 items  
  •      
  •   {{item}} {{item | pluralize 'st' 'rd'}}   输出: 1 st 2 rd 3 rd  
  •      
  •   {{item}} {{item | pluralize 'item'}}   输出: 1 item 2 items 3 items  
  •      
  •   {{item}} {{item | pluralize 'st' 'rd'}}   输出: 1 st 2 rd 3 rd  
  •  
     var myVue = new Vue({  el: ".test",  data: {   message: 1,   lili: [1,2,3],   man: {   name1: 1,   name2: 2,   name3: 3   }  }  })

    debounce(事件延时)

    1) 限制: 需在@里面使用
    2) 参数:{Number} [wait] - 默认值: 300
    3) 功能:包装处理器,让它延迟执行 x ms, 默认延迟 300ms。包装后的处理器在调用之后至少将延迟 x ms, 如果在延迟结束前再次调用,延迟时长重置为 x ms。

    
     点击我
    
     var myVue = new Vue({  el: ".test",  methods: {   doSomeThing: function () {   // do something   }  }  })

    limitBy(排序)

    1) 限制:需在v-for(即数组)里面使用

    第一个参数:{Number} 取得数量

    第二个参数:{Number} 偏移量

    
     
     
  • {{item}}
  •  输出1 2 3 4 5 6 7 8 9 10      
  • {{item}}
  •  输出 4 5 6 7 8 9 10 11 12 13    var myVue = new Vue({  el: ".test",  data: {   lili: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]  }  })

    filterBy(过滤)

    1) 限制:需在v-for(即数组)里面使用

    第一个参数: {String | Function} 需要搜索的字符串

    第二个参数: in (可选,指定搜寻位置)

    第三个参数: {String} (可选,数组格式)

    
     
     
  • {{item}}
  •  输出oi oa lo ouo oala      
  • {{item.name}}
  •  输出lily lucy      
  • {{item.name+"+"+item.dada}}
  •  输出lily+undefined lucy+undefined undefined+lsh   var myVue = new Vue({  el: ".test",  data: {  lili: ["oi", "oa", "ll", "lo" ,"ouo" ,"kk" ,"oala"],  man: [ //此处注意man是数组,不是对象  {name: "lily"},  {name: "lucy"},  {name: "oo"},  {dada: "lsh"},  {dada: "ofg"}  ]  } })

    orderBy(排序)

    1) 限制:需在v-for(即数组)里面使用

    第一个参数: {String | Array | Function} 需要搜索的字符串

    第二个参数: {String} 可选参数 order 决定结果升序(order >= 0)或降序(order < 0),默认是升序

    
     遍历数组
     
     
  • {{item}}
  •  输出kk ll oi      
  • {{item}}
  •  输出oi ll kk    遍历含对象的数组    
  • {{item.name}}
  •  输出Bruce Chuck Jackie      
  • {{item.name}}
  •  输出Jackie Chuck Bruce    使用函数排序    
  • {{item.name}}
  •  输出Bruce Chuck Jackie    var myVue = new Vue({  el: ".test",  data: {   lili: ["oi", "kk", "ll"],   man: [ //此处注意man是数组,不是对象   {   name: 'Jackie',   age: 62   },   {   name: 'Chuck',   age: 76   },   {   name: 'Bruce',   age: 61   }  ]  },  methods: {   ageByTen: function () {   return 1;   }  }  })

    自定义过滤器

    
     {{'2018-11-16 18:12:15'|formatDate}}
    
    
     var myVue = new Vue({
     el: ".test",
     methods: {
     },
     filters:{
      formatDate (val) {
      return moment(val).format('YYYY-MM-DD');
      // 这里用到了moment.js
      }
     }
     })
    

    以上是“vue中内置过滤器怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


    本文名称:vue中内置过滤器怎么用
    本文路径:http://ybzwz.com/article/jcsgid.html

    其他资讯