Vue2.0全局过滤器的定义与使用

1,385 阅读1分钟

Vue2.0全局过滤器的定义与使用

第一步:定义过滤器所需函数

在src目录下创建filter文件夹,在里面创建js文件,里面填写内容是过滤器所要用到的函数

这里我用的是日期格式化处理函数,用的是dayjs插件

import dayjs from "dayjs";
​
export function date(val, b) {
  let data = dayjs(val).format(b);
  return data;
}

第二步:在main.js引用函数文件并注册全局过滤器

// 定义全局时间处理过滤器
import { date } from './filter/dateFormate'
Vue.filter('date', date)

第三步:过滤器的使用

1.在template里面,直接在{{}}里面用|分隔使用,下面例子中,time为date函数的第一个参数,date里面的字符串为第二个参数,一次类推{{ a | date(b,c.d) }} 的话abcd分别为第1234个参数

<template>
  <div >
    {{ time | date('YYYY-MM-DD') }}
  </div>
</template><script>
export default {
  data() {
    return {
      time: new Date(), //当前日期
    };
  },
};
</script>

2.在方法中使用,用this.$options.filters.date()来调用,这里的参数有点区别,跟正常函数调用一样

<template>
  <div >
    {{ time | date('YYYY-MM-DD') }}
  </div>
</template><script>
export default {
  data() {
    return {
      time: new Date(), //当前日期
    };
  },
  methods:{
    handleDate(){
        const data = this.$options.filters.date(time,'YYYY-MM-DD')
        console.log(data)
    },
  }
  created(){
    this.handleDate()
  }
};
</script>

\