vue过滤器+计算属性

2018-09-17  本文已影响0人  婲魢銣佌亾荷姒堪

过滤器

作用:让要显示在页面上的内容进行重新筛选

类型:全局过滤器      局部过滤器

格式:

全局过滤器:

html部分

<p>{{msg|过滤器的名字}}</p>

js部分

Vue.filter('过滤器的名字',function(){

})
new Vue({
})

局部过滤器:

html部分

<p>{{msg|过滤器的名字}}</p>

js部分

})
    new Vue({
        el:'',
        data:{},
        methods:{},
        filters:{
            过滤器名:function (data){
                
            }   
        }
    })
例子1:为小于10的数字前面加0(全局过滤器)
<div id='itany'>
    <p>{{2|addZero}}</p>
</div>
<script>
   Vue.filter('addZero',function(data){
       if(data<10){
           return '0'+data;
       }else{
           return data;
       }
   }) 
   new Vue({
       el:'#itany'
   })
</script>
例子2:现在时间(全局过滤器/局部过滤器)

全局过滤器:

<div id="itany">
    <p>现在时间是{{new Date()|nian}}</p>
</div>
<script>
    new Vue({
        el:'#itany',
        filters:{
            nian:function(data){
                return data.getFullYear()+'年'+(data.getMonth()+1)+'月'+data.getDate()+'日,星期'+data.getDay()+','+data.getHours()+'点'+data.getMinutes()+'分'+data.getSeconds()+'秒';
            }
        }
    })
</script>

局部过滤器:

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

计算属性

处理复杂的逻辑操作

练习:
<div id='itany'>
    <h1>{{msg.split(' ').reverse().join('===')}}</h1>
    <a href="#">{{count}}</a>
</div>
<script>
   new Vue({
       el:'#itany',
       data:{
           msg:'hello vue'
       },
       computed:{//计算属性
           count:function(){
               return this.msg.split(' ').reverse().join('===')
           }
       }
   })
</script>
例子:加货计算
<div id="itany">
   <button @click='add'>加货</button>
   <p>总价:¥{{sum}}</p>
</div>
<script>
    new Vue({
        el:'#itany',
        data:{
           package1:{price:2,count:3},
           package2:{price:4,count:6}
        },
        computed:{
        sum:function(){
            return this.package1.price*this.package1.count+this.package2.price*this.package2.count
            }
        },
        methods:{
           add:function(){
               this.package1.count++;
           }
       }
    })
</script>
上一篇 下一篇

猜你喜欢

热点阅读