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 09 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
js实现左侧网页tab滑动门效果代码
Sep 06 Javascript
javascript实现仿百度图片的瀑布流加载效果
Apr 20 Javascript
Bootstrap整体框架之JavaScript插件架构
Dec 15 Javascript
微信小程序 两种为对象属性赋值的方式详解
Feb 23 Javascript
Angular 2父子组件之间共享服务通信的实现
Jul 04 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
JavaScript基于遍历操作实现对象深拷贝功能示例
Mar 05 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 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在线打包程序源码
2008/07/27 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php的debug相关函数用法示例
2016/07/11 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
vue组件详解之使用slot分发内容
2018/04/09 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
Python的log日志功能及设置方法
2019/07/11 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python Celery多队列配置代码实例
2019/11/22 Python
python中time.ctime()实例用法
2021/02/03 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
自主招生自荐信格式
2013/12/03 职场文书
外企财务年会演讲稿
2014/01/03 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
务虚会发言材料
2014/12/25 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书