详解Vue2.0里过滤器容易踩到的坑


Posted in Javascript onJune 01, 2017

vue2.0里,不再有自带的过滤器,需要自己定义过滤器。定义的方法如下:

注册一个自定义过滤器,它接收两个参数:过滤器 ID 和过滤器函数。

Vue.filter('filtername',function(value,参数){
  return 参数+value.split('').reverse().join('');

 });

function里第一个参数value默认为使用这个过滤器的data对象内的值,在本例中是msg的值'you are mine'。

坑1:第一个参数必须为自身的值,后面可以加任意多的参数。数序颠倒就会出错。

下面来一个最常见的小例子来说明在使用vue2.0过滤器并结合v-text时遇到的其他的几个坑:

需求:在页面输出一段反转顺序的字符串。

完整代码如下:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>

</style>
</head>
<script src='./vue2.js'></script>
<script>
window.onload=function(){
 //类似于自定义指令,可以用全局方法 Vue.filter() 注册一个自定义过滤器,它接收两个参数:过滤器 ID 和过滤器函数。
 Vue.filter('reverseString',function(value,myString){
  // function里第一个参数value默认为使用这个过滤器的data值,在本例中是msg的值'you are mine'。请注意:第一个参数必须为自身的值,后面可以加任意多的参数
  return myString+value.split('').reverse().join('');

 });

 new Vue({
  el:'#box',
  data:{
   msg:'you are mine' 
  } 
 });
};
</script>
<body>

<div id='box'>
 <p>msg is: <br>{{msg}}</p>
 <hr>
 <p>reverse msg is: <br>{{msg|reverseString( 'Hello:' )}}</p><!-- 在vue2.0里 过滤器只能用类似函数的写法reverseString( 'I must tell you:'),括号内是参数,不同于vue1.0的用空格后加参数的写法" msg|reverseString 'I must tell you:' " -->

 <!-- <p v-text="msg|reverseString( 'I must tell you:' )"></p>失效 -->
 <!-- v-text里用过滤器失效,原因是在vue2.0里 管道符‘|'只能用在mousetache和v-bind中 -->
</div>

</body>
</html>

输出结果为:

msg is: 
you are mine

reverse msg is: 
Hello:enim era uoy

坑2:在vue2.0里 过滤器只能用类似函数的写法reverseString( ‘I must tell you:'),括号内是参数,不同于vue1.0的用空格后加参数的写法;

坑3:v-text里用过滤器失效,原因是在vue2.0里 管道符‘|'只能用在mousetache和v-bind中。

以上只是一个简单的过滤器的用法,如果涉及到复杂的数据处理的过滤器,比如实现vue1.0里用到过滤器套过滤器的功能,个人感觉也可以用computed来代替过滤器。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery封装tab自动切换效果的具体实现
Jul 13 Javascript
关于jquery的多个选择器的使用示例
Oct 18 Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 Javascript
分析了一下JQuery中的extend方法实现原理
Feb 27 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
May 25 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
原生js实现日期计算器功能
Feb 17 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 jQuery
一次记住JavaScript的6个正则表达式方法
Feb 22 Javascript
Vue组件为什么data必须是一个函数
Jun 11 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 #Javascript
jQuery实现web页面樱花坠落的特效
Jun 01 #jQuery
jquery网页加载进度条的实现
Jun 01 #jQuery
BootStrap selectpicker后台动态绑定数据
Jun 01 #Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
Jun 01 #Javascript
Require.JS中的几种define定义方式示例
Jun 01 #Javascript
关于javascript获取内联样式与嵌入式样式的实例
Jun 01 #Javascript
You might like
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP pear安装配置教程
2016/05/14 PHP
javascript 函数使用说明
2010/04/07 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
js实现简单的倒计时
2021/01/28 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
如何搜索查找并解决Django相关的问题
2014/06/30 Python
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python正则分析nginx的访问日志
2017/01/17 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python中while和for的区别总结
2019/06/28 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
小学亲子活动总结
2014/07/01 职场文书
相亲活动方案
2014/08/26 职场文书
大学生求职意向书
2015/05/11 职场文书
十七岁的单车观后感
2015/06/12 职场文书
运动员代表致辞
2015/07/29 职场文书
python基础之停用词过滤详解
2021/04/21 Python