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

发布时间 - 2026-01-11 02:45:54    点击率:

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

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


# Vue-Cli  # 自定义过滤器  # vue  # vue.js  # vue 过滤器和自定义指令的使用  # vue 内置过滤器的使用总结(附加自定义过滤器)  # vue自定义filters过滤器  # Vue自定义过滤器格式化数字三位加一逗号实现代码  # vue自定义过滤器创建和使用方法详解  # vue2.0 自定义日期时间过滤器  # Vue过滤器的用法和自定义过滤器使用  # vue定义私有过滤器和基本使用  # 自定义  # 在这里  # 器中  # 是在  # 放在  # 在这个  # 多个  # 就不  # 遍历  # 其他的  # 会在  # 这段  # 就行  # 给大家  # 很简单  # 做个  # 写了  # 只需要  # 写在  # 也给 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: python中快速进行多个字符替换的方法小结  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何在IIS中新建站点并配置端口与物理路径?  网站制作企业,网站的banner和导航栏是指什么?  Laravel如何创建自定义Artisan命令?(代码示例)  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  免费网站制作appp,免费制作app哪个平台好?  如何有效防御Web建站篡改攻击?  Python并发异常传播_错误处理解析【教程】  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Android okhttputils现在进度显示实例代码  iOS正则表达式验证手机号、邮箱、身份证号等  Laravel如何处理和验证JSON类型的数据库字段  javascript如何操作浏览器历史记录_怎样实现无刷新导航  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  如何快速辨别茅台真假?关键步骤解析  如何利用DOS批处理实现定时关机操作详解  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在建站之星绑定自定义域名?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在云主机快速搭建网站站点?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  香港服务器如何优化才能显著提升网站加载速度?  如何批量查询域名的建站时间记录?  如何在自有机房高效搭建专业网站?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  如何做网站制作流程,*游戏网站怎么搭建?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何在云主机上快速搭建多站点网站?  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Internet Explorer官网直接进入 IE浏览器在线体验版网址  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何在腾讯云服务器快速搭建个人网站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何将凡科建站内容保存为本地文件?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  大连 网站制作,大连天途有线官网?  如何获取免费开源的自助建站系统源码?  详解jQuery中基本的动画方法  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  香港服务器租用每月最低只需15元?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  javascript中的try catch异常捕获机制用法分析