Vue-Cli中自定义过滤器的实现代码

 更新时间:2017年08月12日 17:14:45   作者:Evgni0n  
本篇文章主要介绍了Vue-Cli中自定义过滤器的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文主要介绍了Vue-Cli中自定义过滤器,分享给大家,也给自己做个笔记

vue2里面移除了内置过滤器,所有过滤器都需要自己定义。

以下例子是使用webpack模版自定义一个日期格式过滤器的例子。

文件结构

.
├── src
│  ├── Filters
│  │  ├── DataFormat.js
│  │  └── index.js
│  └── main.js
└── ...

所有过滤器都放在Filters文件夹下,剩下的就是webpack模版的文件结构,在这里就不完全写出来。

Filters/DataFormat.js

这个文件主要是写了过滤器实现的方法,然后export进行导出。

export default (time, fmt) => {

 fmt = fmt || 'yyyy-MM-dd hh:mm';
 let date = new Date(time);

 if (/(y+)/.test(fmt)) {
  fmt = fmt.replace(
   RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)
  );
 }

 let dt = {
  'M+': date.getMonth() + 1,
  'd+': date.getDate(),
  'h+': date.getHours(),
  'm+': date.getMinutes(),
  's+': date.getSeconds()
 }

 for (let key in dt) {
  if (new RegExp(`(${key})`).test(fmt)) {
   let str = dt[key] + ''
   fmt = fmt.replace(RegExp.$1, 
    (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length)
   );
  }
 }

 return fmt;
}

这段代码是在网上找的,我只是对其中稍作修改。

Filters/index.js

这里把所有自定义的过滤器都汇总,方便待会在main.js中一次性添加到全局过滤器中。

如果有多个自定义的过滤器就只需要在这个文件内依次导出就行。

// 导出日期过滤器
import dateFormat from './DateFormat'

// 导出的时候以key value的形式导出,这里就设置了在全局过滤器中的过滤器名字。
export {dateFormat}

// 可以继续导出其他的过滤器

src/main.js

这个文件是程序的主入口,一般负责配置相关的东西。所以添加过滤器的工作毫无疑问的交给它了(也只有在这里能够拿到Vue对象)。

// 默认会找 Filters/index.js
import * as filters from './Filters/'

// 遍历所有导出的过滤器并添加到全局过滤器
Object.keys(filters).forEach((key) => {
 Vue.filter(key, filters[key]);
})

使用

使用起来很简单,和正常的使用方式一摸一样,写在项目中需要的.vue文件中即可

<template>

  <!-- 2017-08-11 21:21 -->
  <h1>{{ new Date() | dateFormat }}</h1>
  
  <!-- 2017年08月11日 21:21:05 -->
  <h1>{{ new Date() | dateFormat('yyyy年MM月dd日 hh:mm:ss') }}</h1>

</template>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 在Vue3里使用scss实现简单的换肤功能

    在Vue3里使用scss实现简单的换肤功能

    这篇文章主要介绍了在Vue3里使用scss实现简单的换肤功能,主题色切换、亮色模式和暗黑模式切换、背景图切换,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-12-12
  • Vue.directive 自定义指令的问题小结

    Vue.directive 自定义指令的问题小结

    这篇文章主要介绍了Vue.directive 自定义指令的问题小结,需要的朋友可以参考下
    2018-03-03
  • vue实现虚拟滚动的示例详解

    vue实现虚拟滚动的示例详解

    虚拟滚动或者移动是指禁止原生滚动,之后通过监听浏览器的相关事件实现模拟滚动,下面小编就来和大家详细介绍一下vue实现虚拟滚动的示例代码,需要的可以参考下
    2023-10-10
  • 关于Vue项目使用scss终端发出警告解决方法

    关于Vue项目使用scss终端发出警告解决方法

    这篇文章主要介绍了关于Vue项目使用scss终端发出警告的解决方法,出现这个问题的原因是项目中使用了DartSass旧版的JavaScriptAPI,这些API已被弃用,文章将解决的办法介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • 浅谈Vue.js

    浅谈Vue.js

    本文主要介绍了Vue.js的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • Vue中created与mounted的区别浅析

    Vue中created与mounted的区别浅析

    在使用vue框架的过程中,我们经常需要给一些数据做一些初始化处理,这时候我们常用的就是在created与mounted选项中作出处理,这篇文章主要给大家介绍了关于Vue中created与mounted区别的相关资料,其中部分知识点可能是我们日常工作会见到或用到的,需要的朋友可以参考下
    2022-06-06
  • 在vue.js中使用JSZip实现在前端解压文件的方法

    在vue.js中使用JSZip实现在前端解压文件的方法

    今天小编就为大家分享一篇在vue.js中使用JSZip实现在前端解压文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • KKFileView结合vue多格式文件在线预览功能实现

    KKFileView结合vue多格式文件在线预览功能实现

    kkFileView是git的开源在线文件预览项目,这篇文章主要介绍了KKFileView结合vue多格式文件在线预览功能,本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • Vue新手指南之创建第一个vue-cli脚手架程序

    Vue新手指南之创建第一个vue-cli脚手架程序

    vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目。这篇文章主要给大家介绍了关于Vue新手指南之创建第一个vue-cli程序的相关资料,需要的朋友可以参考下
    2021-05-05
  • Vue路由跳转的4种方式小结

    Vue路由跳转的4种方式小结

    本文主要介绍了Vue路由跳转的4种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论