vue事件 以及 filters函数

0809 课堂笔记 Vue
 
1、事件修改符
            .stop:用于阻止冒泡
            .prevent:取消默认事件。
 
过滤器   filters  函数
实例1:     
            <div>{{time | date }</div>
            filters :{
    //定义了一个局部过滤器  (注册过滤器)    
    //接收的第一个参数即是你要最终过滤的内容
                currency(v){
            //过滤返回的内容就是你要过滤的内容    
                return ——
        }
    }
 
实例2:
<div id="myApp">
    {{price | currency}}
    <p>{{a | currency(3)}}</p>
    <p>{{b | currency(4)}}</p>
</div>
</body>
<script>
    new Vue({
        el:"#myApp",
        data:{
            price:1,
            a:2,
            b:3
        },
        filters:{
            // 第一个参数是你要过滤的值,后面的参数是你接收的参数
            currency(v,n=2){
                console.log(v,n)
                return "$"+v.toFixed(n);
            }
        }
    })
</script>
 
 
外部引入局部过滤器
<div id="myApp">
    <p>价格:{{price | currency}}</p>
    <p>时间:{{time | date}}</p>
</div>
</body>
<script>
    new Vue({
        el:"#myApp",
        data:{
            price:12.456,
            time:Date.now()
        },
        filters
  //      filters:filters
         filters:{
            currency(v,n=2){
                return "$"+v.toFixed(n);
           },
             date(v){
                 const time = new Date(v);
                return time.getFullYear()+"-"+
                     (time.getMonth()+1).toString().padStart(2,"0")+"-"+
                    (time.getDate()).toString().padStart(2,"0")+" "+
                    (time.getHours()).toString().padStart(2,"0")+":"+
                     (time.getMinutes()).toString().padStart(2,"0")+":"+
                     (time.getSeconds()).toString().padStart(2,"0");
            }
        }
    
 
 
 
 
全局过滤器
<body>
<div id="one">
    <p>价格:{{price | currency}}</p>
    <p>时间:{{time | date}}</p>
</div>
<hr>
<div id="two">
    <p>价格:{{price | currency(3)}}</p>
    <p>时间:{{time | date}}</p>
</div>
</body>
<script>
    // 全局过滤器定义,filter第一个参数是过滤器的名字,
    // 第二个参数是一个方法(第一个参数是你要过滤的数据,后面的参数是你接收的值)
    Vue.filter("currency",function (v,n=2) {
        return v.toFixed(n);
    })
    Vue.filter("date",function (v) {
        const time = new Date(v);
        return time.getFullYear()+"-"+
            (time.getMonth()+1).toString().padStart(2,"0")+"-"+
            (time.getDate()).toString().padStart(2,"0")+" "+
            (time.getHours()).toString().padStart(2,"0")+":"+
            (time.getMinutes()).toString().padStart(2,"0")+":"+
            (time.getSeconds()).toString().padStart(2,"0");
    })
    new Vue({
        el:"#one",
        data:{
            price:100000,
            time:Date.now()
        }
    })
    new Vue({
        el:"#two",
        data:{
            price:20000,
            time:Date.now()
        }
    })
</script>
 
 
外部引入全局追踪器
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="lib/vue.js"></script>
    <script src="lib/vue-filters.js"></script>
</head>
<body>
<div id="one">
    <p>价格:{{price | currency}}</p>
    <p>时间:{{time | date}}</p>
</div>
<hr>
<div id="two">
    <p>价格:{{price | currency(3)}}</p>
    <p>时间:{{time | date}}</p>
</div>
</body>
<script>
    for(let  key in filters){
        // key filters[key]
        Vue.filter(key,filters[key]);
    }
    new Vue({
        el:"#one",
        data:{
            price:100000,
            time:Date.now()
        }
    })
    new Vue({
        el:"#two",
        data:{
            price:20000,
            time:Date.now()
        }
    })
</script>
 
外部封装引入:
let filters = {
    currency(v,n=2){
        return "$"+v.toFixed(n);
    },
    date(v){
        const time = new Date(v);
        return time.getFullYear()+"-"+
            (time.getMonth()+1).toString().padStart(2,"0")+"-"+
            (time.getDate()).toString().padStart(2,"0")+" "+
            (time.getHours()).toString().padStart(2,"0")+":"+
            (time.getMinutes()).toString().padStart(2,"0")+":"+
            (time.getSeconds()).toString().padStart(2,"0");
    }
}
 
posted @ 2019-08-25 23:02  仗剑、天涯  阅读(381)  评论(0编辑  收藏  举报