Vue项目引发的「过滤器」使用教程


Posted in Javascript onMarch 12, 2019

前言

最近在项目的开发中,出现一些格式化数据的情况,比如字母的大小写,比如一些价格的数据格式。等等一些格式的显示。

Name Price
BTC $3896.23
ETH $136.64

在上面的表格中,我们需要处理数据的显示。这是我们时常遇到的情况。

通常我们会直接处理数据的输出,可以这么做。

computed: {
 result() {
 return this.prices.map(price => "$" + price);
 }
}

这些都是通过修改数据做到的。

不过,Vue 中给我们提供了一种格式化数据功能「过滤器」。

filters 与 计算属性(computed),方法(methods)不同的是,filters 不会修改数据,只是改变用户看到的输出。Vue 从 2.0 版本之后去除了内置的「过滤器」。所以我们在使用时需要自己去定义。

接下来,我们就来看看看在 Vue 中如何使用「过滤器」。

首先过滤器可以用在两个地方:差值表达式 {{ }} 和 v-bind 表达式,然后由管道操作符“ | ”进行指示。

知道在什么地方时候,那我们就再来看看如何定义过滤器。我们有两种方式定义。

本地过滤器

我们可以把过滤器定义在当前使用的组件内。我们利用过滤器来修改上面的表格输出格式。

{{price.price | currency}}

filters: {
 currency(value) {
  return "$" + value;
 }
}

全局过滤器

这里需要注意的是,使用全局过滤器时,必须要在 Vue 的实例之前。

Vue.filter("currency", function (value) {
 return "$" + value;
});


new Vue({
 //...
})

此时,我们就可以愉快的在组件中使用过滤器了。

用户体验是非常重要的一个环节,我们可以利用过滤器去优化。通常利用表格展示数据时,你无法保证每个字段的属性值都是存在且合理的。

这时就可以利用「过滤器」。把不合理的值显示为 “--”,这是最为常见的手段。

filters: {
 filterPrice(value) {
  return value ? value : "--";
 }
}

过滤器参数

过滤器会把表达式中的值始终当作函数的第一个参数。由于过滤器是一个函数,所以我们也可以额外的传入参数。

{{ data | filterPrice(arg1, arg2) }}

比如我们把上面的案例修改一下,我们不仅仅需要把美元格式化,我们还需要格式化人民币等等,很多种的符号,这时就可以利用传参的方式。

{{price.price | filterPrice('$')}}

filters: {
 filterPrice(price, prefix) {
  return prefix + price;
 }
}

除此之外,「过滤器」还可以进行串联使用。

{{ data | filterA | filterB }}

串联使用时,会把第一个产生的结果,作为参数传递给第二个过滤器使用,以此类推。

好了今天我们 Vue 的过滤器就说到这,大家不妨多多尝试下在项目中使用,提高我们的开发效率,不能总是想着去修改数据,这些功能与套路有时会发挥很好的价值。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
奇妙的js
Sep 24 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
js arguments,jcallee caller用法总结
Nov 30 Javascript
js日期、星座的级联显示代码
Jan 23 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
深入理解JavaScript 中的执行上下文和执行栈
Oct 23 Javascript
node 解析图片二维码的内容代码实例
Sep 11 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
Node.js API详解之 querystring用法实例分析
Apr 29 Javascript
通过JS运行机制的角度说说作用域
Mar 12 #Javascript
Jquery的autocomplete插件用法及参数讲解
Mar 12 #jQuery
如何使用pm2快速将项目部署到远程服务器
Mar 12 #Javascript
详解用Webpack与Babel配置ES6开发环境
Mar 12 #Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
Mar 12 #Javascript
javascript中数组的常用算法深入分析
Mar 12 #Javascript
详解javascript 变量提升(Hoisting)
Mar 12 #Javascript
You might like
用PHP和ACCESS写聊天室(二)
2006/10/09 PHP
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
python实现简单飞行棋
2020/02/06 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
印刷工程专业应届生求职信
2013/09/29 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
工作分析计划书
2014/04/30 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
行政司机岗位职责
2015/04/10 职场文书
工作时间调整通知
2015/04/24 职场文书
药房管理制度范本
2015/08/06 职场文书
python爬虫selenium模块详解
2021/03/30 Python
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript