vue.js filter过滤器 计算属性

2018-09-17  本文已影响0人  北城_以念

1.过滤器

过滤器是让要显示在页面上的内容进行重新筛选
把要显示在页面上的数据进行筛选或重新操作,分为全局过滤和局部过滤

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

html
<p>{{msg|过滤器的名字}}</p>
new Vue({
})
2.)局部过滤器
new Vue({
    el:''
    data:{}
    methods:{},
    filters:{
       过滤器名:function(data){
    
        }
})

练习

保留两位小数练习
<div id='itany'>
       <p>{{123.41233|number}}</p>
</div>
<script src='js/vue.js'></script>
<script>
//       Vue.filter("number",function(data){
//           return data.toFixed(2)
//       }) 
   new Vue({
        el:'#itany',
        filters:{
            number:function(data){
                return data.toFixed(2)
            }
        }
   })
</script>
时间过滤练习
<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>

2.计算属性

练习

计算属性练习
<div id='itany'>
     <h1>{{msg.split(' ').reverse().join('===')}}</h1>
     <a href="#">{{count}}</a>
 </div>
<script src='js/vue.js'></script>
<script>

   new Vue({
       el:'#itany',
       data:{
           msg:'hello vue'
       },
       computed:{//计算属性
           count:function(){   //切割 split  置换reverse   拼接符join 
               return this.msg.split(' ').reverse().join('===')
           }
       }
   })
</script>
计算属性加货练习
<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>
上一篇下一篇

猜你喜欢

热点阅读