vue-cli 3 全局过滤器的实例代码详解


Posted in Javascript onJune 03, 2019

vue-cli 3 全局过滤器的实例代码详解

在vue1.x版本里是自带里几个基础的过滤器的(虽然不怎么用到)。

到了vue2.x版本之后,内置到几个过滤器就被删掉了,如果需要用到过滤器,就要开发者自己去定义。

可以把过滤器定义在某个组件内部,但这样就成了局部过滤器,在别的组件里是无法使用的。所以通常不会这么做。

也可以把过滤器写在main.js里。但如果项目中存在多个过滤器,这会使main.js文件看上去很庞大,不便于后期维护。

所以通常会新建一个js文件,专门用来存放所有过滤器。最后再引到main.js中供全局使用。

1、创建 filters.js

首先新建一个filters.js文件。把这个文件放在 src/assets 里。

vue-cli 3 全局过滤器的实例代码详解

因为这里是用来存放静态资源的。这个文件夹可以用来存放图片、css和部分自定义的功能的js资源。如果需要更好的分类,可以在 assets 文件夹里再创建 js 、 css 、 img 等文件夹。

2、创建过滤器规则

这里我创建了3个过滤器

// 转小写
let lower = value => value.toLowerCase();
// 转大写
let upper = value => value.toUpperCase();
let currencyStyle = (value, style) => { // 货币格式
  /**
   * style: 
   *   currency:货币
   *   number: 数字格式
   */
  if(style == 'number') { // 数字格式
    return parseFloat(value.replace(/[^\d\.-]/g, ""));
  } else { // 货币格式, 并保留2位小数
    var n = 2;
    value = parseFloat((value + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
    var l = value.split(".")[0].split("").reverse(),
      r = value.split(".")[1];
    var t = "";
    for (var i = 0; i < l.length; i++) {
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
    }
    return t.split("").reverse().join("") + "." + r;
  }
}
export {
  lower,
  upper,
  currencyStyle
}

3、在main.js里注册全局过滤器

import Vue from 'vue'
import App from './App.vue'
import * as filters from './assets/filters'
Object.keys(filters).forEach(key => {
 Vue.filter(key, filters[key])
})
Vue.config.productionTip = false
new Vue({
 render: h => h(App),
}).$mount('#app')

通过 forEach 循环,把自定义功能分别注册到过滤器里。

4、在组件里使用

<template>
 <div id="app">
  <p>{{ num1 | currencyStyle('currency') }}</p>
  <p>{{ num2 | currencyStyle('number') }}</p>
  <p>{{ msg1 | lower }}</p>
  <p>{{ msg2 | upper }}</p>
 </div>
</template>
<script>
export default {
 name: 'app',
 data() {
  return {
   num1: 123456,
   num2: '123,456',
   msg1: 'ABC',
   msg2: 'def'
  }
 }
}
</script>

vue-cli 3 全局过滤器的实例代码详解

总结

以上所述是小编给大家介绍的vue-cli 3 全局过滤器的实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
在JavaScript中,为什么要尽可能使用局部变量?
Apr 06 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
Node.js插件的正确编写方式
Aug 03 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
Jun 03 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
Jul 25 Javascript
Vue.js中的组件系统
May 30 Javascript
详解在Angular4中使用ng2-baidu-map的方法
Jun 19 Javascript
js动态生成表格(节点操作)
Jan 12 Javascript
vue穿梭框实现上下移动
Jan 29 Vue.js
vue2之简易的pc端短信验证码的问题及处理方法
Jun 03 #Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 #Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 #Javascript
Vue基础学习之项目整合及优化
Jun 02 #Javascript
JavaScript判断对象和数组的两种方法
May 31 #Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 #Javascript
Vuex新手的理解与使用详解
May 31 #Javascript
You might like
一个PHP日历程序
2006/12/06 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
python SVM 线性分类模型的实现
2019/07/19 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
手术室护士节演讲稿
2014/08/27 职场文书
音乐研修感悟
2015/11/18 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
SQL Server中锁的用法
2022/05/20 SQL Server