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


Posted in Javascript onAugust 12, 2017

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

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

Javascript 相关文章推荐
FF IE兼容性的修改小结
Sep 02 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
Mar 18 Javascript
分享两段简单的JS代码防止SQL注入
Apr 12 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
js前端解决跨域问题的8种方案(最新最全)
Nov 18 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
JS中的作用域链
Mar 01 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
vue自定义指令实现方法详解
Feb 11 Javascript
javascript实现简易的计算器
Jan 17 Javascript
最新最全的手机号验证正则表达式
Feb 24 Javascript
react开发教程之React 组件之间的通信方式
Aug 12 #Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 #Javascript
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 #Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 #Javascript
js模块加载方式浅析
Aug 12 #Javascript
浅谈angular2 组件的生命周期钩子
Aug 12 #Javascript
Node.js pipe实现源码解析
Aug 12 #Javascript
You might like
php 缩略图实现函数代码
2011/06/23 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
详解python3中的真值测试
2018/08/13 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
python 异步async库的使用说明
2020/05/04 Python
python操作链表的示例代码
2020/09/27 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
国际花店:Pickup Flowers
2020/04/10 全球购物
省三好学生申请材料
2014/01/22 职场文书
班主任工作实习计划
2015/01/16 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
Java获取字符串编码格式实现思路
2022/09/23 Java/Android