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 24 Javascript
jQuery中.live()方法的用法深入解析
Dec 30 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
在vue中使用jointjs的方法
Mar 24 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
Aug 08 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
js删除对象中的某一个字段的方法实现
Jan 11 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中unserialize返回false的解决方法
2014/09/22 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
python实现自动化上线脚本的示例
2019/07/01 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
python标记语句块使用方法总结
2019/08/05 Python
python 函数中的参数类型
2020/02/11 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
名人演讲稿范文
2014/09/16 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python