Vue过滤器

本文介绍了Vue.js中的过滤器功能,主要用于文本格式化,如日期格式化。过滤器可以应用于双花括号插值和v-bind表达式。文章分别阐述了全局过滤器和私有过滤器的定义及使用示例,强调了全局过滤器的通用性和私有过滤器的局部优化优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其他vue相关文章可以在我个人分类中的vue.js部分查看


# 过滤器

Vue.js 允许自定义过滤器,用于文本的格式化。其特点是,渲染格式化后的文本却不改变其本身内容。例如:日期的格式化
过滤器可以用在两个地方:双花括号插值、 v-bind 表达式 (v2.1.0+)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

<!-- 在双花括号中 -->
{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>



# 全局过滤器

顾名思义,定以后可以在每一个vue实例中使用,要注意的是,必须在vue实例声明前定义过滤器,否则会出现检测不到过滤器的情况。
下面是一个用例,定义的funfotmat过滤器将可以在app和app2中使用

<div id="app">
	<p v-for="item in list">{{item.name | funfotmat}}</p>
</div>
<script>
	Vue.filter('funfotmat',function(name){
		return name.replace(/xiao/g,"da")
	})
    var vm = new Vue({
        el: "#app",
        data: {
            list: [
                {id:1,name:"xiaomingxiaomao"},
                {id:2,name:"xiaohong"}
            ]
        }
    })
    var vm2 = new Vue({
        el: "#app2"
    })
</script>



# 私有过滤器

一些过滤器可能只在一个组建中使用,这时声明为全局过滤器会造成不必要的js加载,用户在访问一些未使用该过滤器的页面时还需要加载这个过滤器的js代码,造成资源额外开销,所以可以申请为私有过滤器。
演示如下:

var vm = new Vue({
    el: "#app",
    data: {
                
    },
    methods: {
                
    },
    //过滤器
    filters: {
        timeFormat1: function (value) {
            var dt = new Date(value);
            var yyyy = dt.getFullYear();
            var MM = dt.getMonth() + 1;
            var dd = dt.getDate();
            var hh = dt.getHours();
            var mm = dt.getMinutes();
            var ss = dt.getSeconds();
            return `${yyyy}-${MM}-${dd}  ${hh}:${mm}:${ss}`;
        },
        timeFormat2: function (value) {
            var dt = new Date(value);
            var yyyy = dt.getFullYear();
            var MM = dt.getMonth() + 1;
            var dd = dt.getDate();
            var hh = dt.getHours();
            var mm = dt.getMinutes();
            var ss = dt.getSeconds();
            return `${yyyy}${MM}${dd}日`;
        }
    }
})

此时的timeFormat和timeFormat2就只能在app中使用而无法在其他组件中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值