vue+ts:全局过滤器和局部过滤器从注册到具体使用的详细过程

在Vue.js中Filter过滤器是什么

在Vue.js中Filter常用于拦截数据,对数据进行进一步处理和展示,分为全局过滤器和局部过滤器,在网页开发中,最常用到的是对时间的处理,比如我们创建个时间,new Date()时间是中国标准时间(Tue Jul 13 2021 16:50:43 GMT+0800 (中国标准时间))这样我们就可以通过使用过滤器处理展示为我们日常看到的时间格式:2021-07-13 16:50:43,

说到底,过滤器就是拦截数据对数据进行再次处理并返回数据,在Vue.js中常在双花括号{{}}插值和 v-bind 表达式进行使用,

全局过滤器

创建getglobalFilter.ts全局过滤器文件(文件名字可以自己随便定义)

//首先在文件中引入Vue
import Vue from 'vue';
//以下为全局过滤器的定义(可以定义多个)
Vue.filter('globalFilter', function(value: any) {
  return value+'我是全局过滤器';
});

Vue.filter('globalFilter1', function(value: any) {
  return value+'我是全局过滤器1';
});

在main.ts文件里导入刚才定义的全局过滤器getglobalFilter文件

//导入需注册的全局过滤器的文件
import '@/views/unlawful-record/test/globalFilter';

导入完成就可以在页面中直接调用过滤器的名字进行使用

  //定义一个变量
  getglobalFilter: string ='调用全局过滤器-----'  
  //页面使用
  <div>
      <h1>全局过滤器</h1>
      <p>{{getglobalFilter | globalFilter}}</p>
  </div>

局部过滤器

局部过滤器可以在@Component里面的filters里进行定义

<script lang="ts">
//导入 Component, Prop, Vue, Watch等修饰器方法
import { Component, Prop, Vue, Watch } from 'vue-property-decorator';
//在Component里使用filters定义局部过滤器
@Component({
  components: {},
  filters: {
    localFilter: (date: any) => {
      let y = date.getFullYear();
      let m = date.getMonth() + 1;
      m = m < 10 ? '0' + m : m;
      let d = date.getDate();
      d = d < 10 ? '0' + d : d;
      let h = date.getHours();
      h = h < 10 ? '0' + h : h;
      let minute = date.getMinutes();
      let second = date.getSeconds();
      minute = minute < 10 ? '0' + minute : minute;
      second = second < 10 ? '0' + second : second;
      return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
    },
  },
})
export default class AllFilter extends Vue {
//定义一个时间变量
  currentTime: any = new Date();
}
</script>

在页面中调用

    <div>
      <h1>局部过滤器</h1>
      <p>{{ currentTime }}</p>
      <p>使用局部过滤器处理时间:{{ currentTime | localFilter }}</p>
      <!-- currentTime为定义的变量,localFilter 为局部定义的过滤器名字 -->
    </div>

过滤器实现效果:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值