信息发布→ 登录 注册 退出

Vue的过滤器你真了解吗

发布时间:2026-01-11

点击量:
目录
  • 1. 过滤器
    • 1.1 对过滤器的理解
    • 1.2 全局过滤器:
    • 1.3 局部过滤器:
    • 1.4 过滤器的案例
  • 总结

    1. 过滤器

    案例中使用到时间格式相关API

    1.1 对过滤器的理解

    定义:对要显示的数据进行特定格式化后在显示

    适用:做一些简单的逻辑处理

    特点:滤器可以做一些简单操作,并且没有改变原来的数据,产生新的对应的数据

    ​ 1. 语法 : data | 过滤器

    ​ 不传参数默认将data值传入,并且自动调用函数,函数可接收到value

    ​ 传参数并不会覆盖掉第一个参数,第一个参数默认是value,第二个参数才是 传入的参数

    ​ 2. 滤器可以以串联的形式

    ​ data | 过滤器 | 过滤器

    ​ 执行的顺序是将data当做参数传入到第一个过滤器中,第一个过滤器处理完,返回的

    ​ 值作为第二个过滤器的参数

    1.2 全局过滤器:

    Vue.filter(filterName, function(value){
      return value.slice(0, 4);
    })
    new Vue({
    	.
    	..
    	...
    })
    

    1.3 局部过滤器:

    new Vue{
    	filters:{
    		filterName(value){
          return value.slice(0, 4);
    		}
    	}
    }
    

    在html中使用过滤器

    <div>{{ handledata | filtername }}</div>
    <div>{{ handledata | filtername(参数) }}</div>
    

    1.4 过滤器的案例

     <div id="root">
            <h3>methods写的:{{time()}}</h3>
            <h3>computed写的:{{time1}}</h3>
            <h3>过滤器的写的:{{number | ftime("YYYY-MM-DD HH:mm:ss") | qjtime}}</h3>
        </div>
        <div id="root2">
            <hr>
            <h3>{{name | qjtime}}</h3>
        </div>
        <script>
            Vue.config.productionTip = false
            // 全局过滤器
            Vue.filter('qjtime', function (val) {
                return val.slice(0, 4)
            })
            let vm = new Vue({
                el: '#root',
                data: {
                    number: Date.now()
                },
                methods: {
                    time() {
                        return dayjs(this.number).format("YYYY年MM月DD日 HH:mm:ss")
                    }
                },
                computed:
                {
                    time1: {
                        get() {
                            return dayjs(this.number).format("YYYY年MM月DD日 HH:mm:ss")
                        }
                    }
                },
                // 局部过滤器
                filters:
                {
                    // 这是ES的语法表示如果有传参数就使用传进来的参数,如果没有传参就使用
                    ftime(val, str = "YYYY年MM月DD日 HH:mm:ss") {
                        return dayjs(val).format(str)
                    },
                }
            })
    
            new Vue({
                el: "#root2",
                data: {
                    number: Date.now(),
                    name: '我是第二个Vue'
                }
            })
        </script>
    

    总结

    以上就是今天要讲的内容,本文介绍了对过滤器的一些相关知识,希望对大家有所帮助!

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!