Vue进阶(1)

2018-09-17  本文已影响0人  Crazy丶此木

一.过滤器

过滤器分为局部过滤器和全局过滤器

1.局部过滤器

格式

<div class='glq'>
      <p>{{变量|过滤器名字}}</p>      (变量和过滤器名字都是由自己定)
</div>
<script src='js链接'></script>
<script>
      Vue filter('过滤器名字',function(data){
            在这里要用return索引返回值
      });
      new Vue({
            el:'glq'
      })
</script>

2.全局过滤器

格式

<div class='glq'>
      <p>{{变量|过滤器名字}}</p>
</div>
<script src='js链接'></script>
<script>
      new Vue({
            el:'glq',
            filters:{
                  变量:function(data){
                        在这里要用return索引返回值
                  }
            }
      })
</script>

练习

1.当数字为小于10的一位数时,在前面加个 “0”

<div class='glq'>
      <p>{{5|fun}}</p>
</div>
<script src='js链接'></script>

1)局部过滤

<script>
      el:'glq',
      Vue.filter(‘fun’,function(data){
            if(data<10){
                  return '0'+data
            }else{
                  return data
            }
      }
      new Vue({
            el:'.glq',
      })
</script>

2)全局过滤

<script>
      new Vue({
            el:'.glq',
            filters:{
                  fun:function(data){
                        if(data<10){
                              return '0'+data
                        }else{
                              return data
                        }
                  }
            }
      })
</script>

2.小数点后留两位数

<div class='glq'>
      <p>{{1.234|fun}}</p>
</div>
<script src='js链接'></script>

局部过滤

<script>
      el:'.glq',
      Vue.filter('fun',function(data){
            return data.toFixed(2)
      })
</script>

全局过滤

<script>
      el:'.glq',
      filters:{
            fun:function(data){
                  return data.toFixed(2)
            }
      }
</script>

3.时间

<div class='glq'>
      <p>{{new Date()|fun}}</p>
</div>
<script src='js链接'></script>

局部过滤

<script>
      el:'.glq',
      Vue.filter('fun',function(data){
            var date=new Date();
            var year=date.getFullYear();
            var mon=date.getMonth()+1;
            var tian=date.getDate();
            var day=date.getDay();
            var hours=date.getHours();
            var min=date.getMinutes();
            var sec=date.getSeconds();
            return '现在时间是'+year+'年'+mon+'月'+tian+'日,星期'+day+','+hours+'点'+min+'分'+sec+'秒'
      })
</script>

全局过滤

<script>
      el:'.glq',
      filters:{
            fun:function(data){
                  var date=new Date();
                  var year=date.getFullYear();
                  var mon=date.getMonth()+1;
                  var tian=date.getDate();
                  var day=date.getDay();
                  var hours=date.getHours();
                  var min=date.getMinutes();
                  var sec=date.getSeconds();
                  return '现在时间是'+year+'年'+mon+'月'+tian+'日,星期'+day+','+hours+'点'+min+'分'+sec+'秒'
            }
      }
</script>

二.计算属性

通过使用与data,methods同级的computed完成一些重复繁琐的计算

例如:将Hello Vue转化成 Vue===Hello

<div class='nr'>
      {{fun}}
</div>
<script src='js链接'></script>
<script>
      new Vue({
            el:'.nr',
            data:{
                  msg:'Hello Vue'
            }
            computed:{
                  fun:function(){
                        return this.msg.split(' ').reverse().join('===');
          (split是切割的意思,引号中间的空格表示,每个空格为一个切割单位)
         (reverse是反转的意思,就是将切割开的元素顺序颠倒)
         (jion是连接的意思,引号中间的符号是在切割开的地方要添加的元素)
                  }
            }
      })
</script>

练习题:求和

<div class='nr'>
      <button v-on:click="jia">加货</button>
      <p>{{fun}}</p>
</div>
<script src='js链接'></script>
<script>
      new Vue({
            el:'.nr',
            data:{
                  arr:{price:2,count:3},
                  add:{price:4,count:6}
            },
            computed:{              (求和)
                  fun:function(){
                        return this.arr.price*this.arr.count+this.add.price*this.add.count
                  }
            }
            methods:{                 (arr.count每加一个的和)
                  jia:function(){
                        this.arr.count++
                  }
            }
      })
</script>
上一篇下一篇

猜你喜欢

热点阅读