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 each()嵌套使用小结
Apr 18 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
Bootstrap实现弹性搜索框
Jul 11 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
探索Vue高阶组件的使用
Jan 08 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
Nov 25 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获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
浅析php学习的路线图
2013/07/10 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
Python for循环中的陷阱详解
2018/07/13 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
python将时分秒转换成秒的实例
2019/12/07 Python
通过实例解析Python调用json模块
2019/12/11 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
乳制品整治工作方案
2014/05/29 职场文书
机械工程师岗位职责
2014/06/16 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
小学优秀班主任材料
2014/12/17 职场文书
教师个人发展总结
2015/02/11 职场文书
婚姻出轨保证书
2015/05/08 职场文书
golang操作rocketmq的示例代码
2022/04/06 Golang
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript