Vue框架——过滤器

过滤器的作用

格式化数据,比如将字符串格式化首字母大写,将日期格式化为指定格式等
在这里插入图片描述

自定义过滤器

使用filterAPI

Vue.filter('过滤器名称', function(val){
    // 过滤器业务逻辑
});

第一个参数为过滤器的名称,第二个参数为一个函数,用来处理过滤器的业务逻辑,函数里的参数为需要处理的数据

局部过滤器

filters:{
    '过滤器名称':function(val){
        //过滤器业务逻辑
    }
}

过滤器的使用

<div id="app">
    <div>{{msg}}</div>
    <div>{{msg | toUpper}}</div>
    <div>{{msg | toUpper | toLower}}</div>
    <div :str="msg | toUpper"></div>
</div>
Vue.filter('toUpper', function(val) {
    return val.charAt(0).toUpperCase() + val.slice(1);
});
Vue.filter('toLower', function(val) {
    return val.charAt(0).toLowerCase() + val.slice(1);
});
var vm = new Vue({
    el: '#app',
    data: {
        msg: 'hey'
    },
});

过滤器可以同时使用多个,作用是把前一个过滤器处理的结果作为下一个过滤器的参数,再进行处理

带参数的过滤器案例

时间格式化

<div id="app">
    <div>{{date | format('yyyy-MM-dd hh:mm:ss')}}</div>
</div>
Vue.filter('format', function(value, arg) {
    function dateFormat(date, format) {
        if (typeof date === "string") {
            var mts = date.match(/(\/Date\((\d+)\)\/)/);
            if (mts && mts.length >= 3) {
                date = parseInt(mts[2]);
            }
        }
        date = new Date(date);
        if (!date || date.toUTCString() == "Invalid Date") {
            return "";
        }
        var map = {
            "M": date.getMonth() + 1, //月份 
            "d": date.getDate(), //日 
            "h": date.getHours(), //小时 
            "m": date.getMinutes(), //分 
            "s": date.getSeconds(), //秒 
            "q": Math.floor((date.getMonth() + 3) / 3), //季度 
            "S": date.getMilliseconds() //毫秒 
        };
        format = format.replace(/([yMdhmsqS])+/g, function(all, t) {
            var v = map[t];
            if (v !== undefined) {
                if (all.length > 1) {
                    v = '0' + v;
                    v = v.substr(v.length - 2);
                }
                return v;
            } else if (t === 'y') {
                return (date.getFullYear() + '').substr(4 - all.length);
            }
            return all;
        });
        return format;
    }
    return dateFormat(value, arg);
});
var vm = new Vue({
    el: '#app',
    data: {
        date: new Date()
    },
});

过滤器函数带有两个参数,第一个是需要处理数据的值,第二个是时间的格式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值