当前位置: 移动技术网 > IT编程>脚本编程>vue.js > Vue-Cli中自定义过滤器的实现代码

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

本文主要介绍了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>

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网