Vue进阶(1)

一.过滤器

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

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

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,081评论 0 29
  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,629评论 0 6
  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,275评论 0 25
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,244评论 0 6
  • 最近 ,每天几乎凌晨1.2点睡 ,4.5点起来。也不是睡不着,只是每天躺到床上都已经11点多,又想早起,晚起感觉这...
    MRAbby阅读 193评论 0 6