过滤器vue.filters的使用方法实现


Posted in Javascript onSeptember 18, 2019

写项目的时候,有一些方法我们是需要全局使用的,比如数字的四色五入保留小数点啊、一些工具方法、字符的格式化啊等等。这些很多页面需要用的、使用频率极高的方法,我们一般会将其封装为全局的方法;我以前是这样做的,有这么几种方式:

1、挂载到vue.prototype

在main.js入口文件中挂载到vue.prototype,如我们封装一个获取时间戳的函数。

Vue.prototype.now = Date.now || function () { 
  return new Date().getTime(); 
};

然后就可以在.vue页面中使用了

<script> 
  export default {  
    mounted(){ 
      console.log('now:' + this.now()); 
    }, 
  } 
</script>

2、全局混入mixins

同样也还是在main.js中。

mixins的全局注入规则大家应该都懂,如果组件中没有这个getTime方法,那么就会在页面中注入这个方法。

Vue.mixin({
 data() {},
 methods: {
  getTime() { 
   return new Date().getTime();
  }
 } 
});
new App({
 el: '#app'
 // ...
});

3、关于vue.filters

(1)问题

前面两种方法弊端有很多,比如一般将全局变量挂载到prototype总是不太好的,状态管理我们用vuex;第二个全局混入的话,子组件中也会混入这些方法等等;最大的弊端就是代码的可读性和维护问题,如果项目体积大了,复用的方法多了,总不能都挂到prototye上去对吧?
这个时候,vue.filters过滤器就能够较好的解决这个问题。

(2)使用

先看一波官网-->传送门

ok,看完了,基本了解了过滤器的概念和基本使用方式以后,我们具体到项目中的使用。

新建一个filters文件夹,丢一行代码(很常用的一行代码,就是对数字做一些四舍五入的处理)

过滤器vue.filters的使用方法实现

数字四舍五入保留两位小数点

main.js中引入

// global filters
import Vue from 'vue';
import * as filters from '@/filters'; 

Object.keys(filters).forEach((key) => {
 Vue.filter(key, filters[key]);
});

然后页面中就可以使用了

<div>{{num | formatAmountFixed2}}</div>

<script>
data(){
  return {
    num: 11111
  }
}
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中动态添加事件(绑定事件)的代码
Jan 09 Javascript
toggle()隐藏问题的解决方法
Feb 17 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
JS与jQ读取xml文件的方法
Dec 08 Javascript
JS深度拷贝Object Array实例分析
Mar 31 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
jQuery表单选择器用法详解
Aug 22 jQuery
vue中使用router全局守卫实现页面拦截的示例
Oct 23 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 #Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 #Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 #Javascript
详解element-ui中表单验证的三种方式
Sep 18 #Javascript
layui的布局和表格的渲染以及动态生成表格的方法
Sep 18 #Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 #Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
Sep 18 #Javascript
You might like
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php curl 上传文件代码实例
2015/04/27 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
PHP7 新增功能
2021/03/09 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
基于Python实现用户管理系统
2019/02/26 Python
利用python开发app实战的方法
2019/07/09 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
社会实践活动总结范文
2014/07/03 职场文书
高一军训口号
2015/12/25 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL