vue 过滤器

过滤器:让要显示在页面上的内容进行重新筛选

全局过滤器:
语法: Vue.filter('过滤器的名字',function(){
})

例子:

     <div id='itany'>
          <p>{{new Date()|date}}</p>
      </div>
      <script src='js/vue.js'></script> 
      <script>
         Vue.filter("date",function(data){
           return  data.getFullYear()+'年'+(data.getMonth()+1)+'月'+data.getDate()+'日,星期'+data.getDay()+','+data.getHours()+'点'+data.getMinutes()+'分'+data.getSeconds()+'秒';
 })  
 new Vue({
     el:'#itany'  
 })
   </script>

局部过滤器:
语法:new Vue({
el:''
data:{}
methods:{},
filters:{
过滤器名:function(data){
}
})
例子:

<div id='itany'>
   <p>{{123.41233|number}}</p>
   </div>
<script src='js/vue.js'></script>
<script>
   new Vue({
        el:'#itany',
        filters:{
            number:function(data){
                return data.toFixed(2)
            }
        }
   })
</script>

计算属性实例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
  <div id='itany'>
 <button @click='add'>加货</button>
  <h1>{{total}}</h1>
  </div>
   <script src='js/vue.js'></script> 
   <script>

   new Vue({
       el:'#itany',
       data:{
           package1:{price:2,count:3},
           package2:{price:4,count:6}
       },
       computed:{
           total:function(){
               return this.package1.price*this.package1.count+this.package2.price*this.package2.count
           }
       },
       methods:{
           add:function(){
               this.package1.count++;
           }
       }
       
   })
</script>
</body>
</html>    

运行结果:
360截图20180917151016165.jpg

时间过滤实例:

全局过滤器:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
  <div id='itany'>
  <p>{{new Date()|date}}</p>
  </div>
   <script src='js/vue.js'></script> 
   <script>
 Vue.filter("date",function(data){
     return  data.getFullYear()+'年'+(data.getMonth()+1)+'月'+data.getDate()+'日,星期'+data.getDay()+','+data.getHours()+'点'+data.getMinutes()+'分'+data.getSeconds()+'秒';
 })  
 new Vue({
     el:'#itany'  
 })
   </script>
</body>
</html>

运行结果:


360截图20180917151500716.jpg

局部过滤器:保留小数点后两位

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
   <div id='itany'>
   <p>{{123.41233|number}}</p>
   </div>
  <script src='js/vue.js'></script>
  <script>
   new Vue({
        el:'#itany',
        filters:{
            number:function(data){
                return data.toFixed(2)
            }
        }
   })
</script>
</body>
</html>

运行结果:


360截图20180917151809368.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在这个教程中,我们将会通过几个例子,了解和学习VueJs的过滤器。我们参考了一些比较完善的过滤器,比如orderB...
    一缕清风1144阅读 4,886评论 0 1
  • 在这个教程中,我们将会通过几个例子,了解和学习VueJs的过滤器。我们参考了一些比较完善的过滤器,比如orderB...
    嘉宝_Appian阅读 1,206评论 1 4
  • 过滤器是显示在页面上的数据进行处理筛选操作 过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 过滤器应...
    天赐很棒阅读 197评论 0 0
  • 此笔记关于filter的官方文档的一些讲解及个人的一些拓展 简单介绍一下过滤器,顾名思义,过滤就是一个数据经过了这...
    chenjieyi阅读 174,033评论 21 62
  • 青春作伴好读书,不负韶华终成人!
    逐灬梦阅读 190评论 0 0