vue过滤器+计算属性

过滤器

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

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

格式:

全局过滤器:

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

推荐阅读更多精彩内容

  • 一.过滤器:让要显示在页面上的内容进行重新筛选。 二.分为: (1) 全局过滤器 (2) 局部过滤器 三.实例 日...
    e8faf1ff57ad阅读 1,485评论 0 0
  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,276评论 0 25
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,997评论 19 139
  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,629评论 0 6
  • 今晚和朋友聊天,一句话说出了我心里的纠结:你不知道你想要什么,是因为你想要的太多,所以没办法接受安逸。这句话听起来...
    嘟嘟笑曦曦阅读 180评论 0 0