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 相关文章推荐
js实现单一html页面两套css切换代码
Apr 11 Javascript
JavaScript 动态加载脚本和样式的方法
Apr 13 Javascript
简单实现jQuery多选框功能
Jan 09 Javascript
Vue.js项目部署到服务器的详细步骤
Jul 17 Javascript
React Native AsyncStorage本地存储工具类
Oct 24 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
javascript判断一个变量是数组还是对象
Apr 10 Javascript
ligerUI的ligerDialog关闭刷新的方法
Sep 27 Javascript
js实现图片上传到服务器和回显
Jan 19 Javascript
vue-autoui自匹配webapi的UI控件的实现
Mar 20 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
浏览器JavaScript调试功能无法使用解决方案
Sep 18 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 header()函数使用说明
2008/07/10 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
使用jquery实现以post打开新窗口
2014/03/19 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
Python中动态创建类实例的方法
2017/03/24 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python for循环及基础用法详解
2019/11/08 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
Django xadmin安装及使用详解
2020/10/26 Python
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
最新大学生自我评价
2013/09/24 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
2014年党支部学习材料
2014/05/19 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书