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脚本的性能的几个注意事项
Dec 22 Javascript
javascript 出生日期和身份证判断大全
Nov 13 Javascript
利用cookie记住背景颜色示例代码
Nov 04 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
使用jquery动态加载Js文件和Css文件
Oct 24 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
关于Vue Webpack2单元测试示例详解
Aug 14 Javascript
iframe高度自适应及隐藏滚动条的实例详解
Sep 29 Javascript
vue.js实现标签页切换效果
Jun 07 Javascript
Vue 监听列表item渲染事件方法
Sep 06 Javascript
vue实现添加与删除图书功能
Oct 07 Javascript
Vue+Element UI实现概要小弹窗的全过程
May 30 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 session有效期session.gc_maxlifetime
2011/04/20 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
Node.js模块加载详解
2014/08/16 Javascript
javascript制作2048游戏
2015/03/30 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
javascript基础知识
2016/06/07 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
使用pandas读取文件的实现
2019/07/31 Python
简单介绍python封装的基本知识
2019/08/10 Python
Python hashlib模块加密过程解析
2019/11/05 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
详解python tcp编程
2020/08/24 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
统计系教授推荐信
2014/02/28 职场文书
给校长的建议书300字
2014/05/16 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
北京故宫的导游词
2015/01/31 职场文书
任命书怎么写
2015/03/02 职场文书
工作表现证明
2015/06/15 职场文书