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 相关文章推荐
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
jquery提交form表单简单示例分享
Mar 03 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
Oct 17 Javascript
javascript中Date对象的getDay方法使用指南
Dec 22 Javascript
javascript对象的相关操作小结
May 16 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
深入理解JS继承和原型链的问题
Dec 17 Javascript
js禁止表单重复提交
Aug 29 Javascript
jQuery实现滚动效果
Nov 17 jQuery
vue2.0 better-scroll 实现移动端滑动的示例代码
Jan 25 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 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
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php实现微信公众号无限群发
2015/10/11 PHP
JavaScript之编码规范 推荐
2012/05/23 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
2018/01/31 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
Python中的zip函数使用示例
2015/01/29 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python os.fork() 循环输出方法
2019/08/08 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
python实现视频压缩功能
2020/12/18 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
我的中国梦演讲稿800字
2014/08/19 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
个人工作年终总结
2015/03/09 职场文书