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 相关文章推荐
基于Jquery的简单图片切换效果
Jan 06 Javascript
基于jquery的bankInput银行卡账号格式化
Aug 22 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
js图片轮播手动切换效果
Nov 10 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
jquery延迟对象解析
Oct 26 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 Javascript
js实现文字无缝向上滚动
Feb 16 Javascript
使用Require.js封装原生js轮播图的实现代码
Jun 15 Javascript
不得不知的ES6小技巧
Jul 28 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 Javascript
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 mysql 判断update之后是否更新了的方法
2012/01/10 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
php文件缓存方法总结
2016/03/16 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
js实现左右轮播图
2020/01/09 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python with的用法
2014/08/22 Python
Python内置函数OCT详解
2016/11/09 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
python 不以科学计数法输出的方法
2018/07/16 Python
Python双向循环链表实现方法分析
2018/07/30 Python
实例讲解python中的协程
2018/10/08 Python
python django model联合主键的例子
2019/08/06 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
教师辞职报告范文
2014/01/20 职场文书
运动会通讯稿100字
2014/01/31 职场文书
副董事长岗位职责
2014/04/02 职场文书
经典毕业生求职信
2014/07/12 职场文书
投标邀请书范本
2015/02/02 职场文书
话题作文之学会尊重
2019/12/16 职场文书