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 26 Javascript
JS与C#编码解码
Dec 03 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
JS实现留言板功能
Jun 17 Javascript
详解VueJS 数据驱动和依赖追踪分析
Jul 26 Javascript
jQuery实现基本隐藏与显示效果的方法详解
Sep 05 jQuery
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 Javascript
JavaScript实现随机点名小程序
Oct 29 Javascript
js闭包的9个使用场景
Dec 29 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
PHPCMS的使用小结
2010/09/20 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
PHP微商城开源代码实例
2019/03/27 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
如何编写jquery插件
2017/03/29 jQuery
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
一份python入门应该看的学习资料
2018/04/11 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
实体的生命周期
2013/08/31 面试题
公务员转正考察材料
2014/02/07 职场文书
科技之星事迹材料
2014/06/02 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
普通党员整改措施
2014/10/24 职场文书
银行自荐信范文
2015/03/25 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android