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 相关文章推荐
js鼠标左右键 键盘值小结
Jun 11 Javascript
Html中JS脚本执行顺序简单举例说明
Jun 19 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
Jun 27 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
Jun 05 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
javaScript如何跳出多重循环break、continue
Sep 01 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
Aug 11 Javascript
vue与TypeScript集成配置最简教程(推荐)
Oct 17 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 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数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
Python扩展内置类型详解
2018/03/26 Python
浅谈flask源码之请求过程
2018/07/26 Python
python 切换root 执行命令的方法
2019/01/19 Python
Django 内置权限扩展案例详解
2019/03/04 Python
flask框架路由常用定义方式总结
2019/07/23 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python访问hdfs的操作
2020/06/06 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
歼十出击观后感
2015/06/11 职场文书
2019年入党思想汇报
2019/03/25 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
python中的getter与setter你了解吗
2022/03/24 Python
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技