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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
javascript 精粹笔记
May 09 Javascript
jQuery中:last选择器用法实例
Dec 30 Javascript
浅谈javascript中自定义模版
Jan 29 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
jQuery快速实现商品数量加减的方法
Feb 06 Javascript
基于JS脚本语言的基础语法详解
Jul 22 Javascript
Vue组件之全局组件与局部组件的使用详解
Oct 09 Javascript
vue 路由页面之间实现用手指进行滑动的方法
Feb 23 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
Dec 30 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php生成shtml类用法实例
2014/12/09 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
Python中itertools模块用法详解
2014/09/25 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python networkx包的实现
2020/02/14 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
党员思想汇报范文
2013/12/30 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
感谢信怎么写
2015/01/21 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
博物馆观后感
2015/06/05 职场文书
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers