详解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 相关文章推荐
sina的lightbox效果。
Jan 09 Javascript
javascript oop开发滑动(slide)菜单控件
Aug 25 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 Javascript
浅谈EasyUI中编辑treegrid的方法
Mar 01 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
jQuery实现每隔几条元素增加1条线的方法
Jun 27 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
Feb 19 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
node实现的爬虫功能示例
May 04 Javascript
vue3.0中使用postcss-pxtorem的具体方法
Nov 20 Javascript
JavaScript实现Excel表格效果
Feb 07 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
php 日期时间处理函数小结
2009/12/18 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
php动态变量定义及使用
2015/06/10 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
node.js中的fs.write方法使用说明
2014/12/15 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
简单介绍Python中的readline()方法的使用
2015/05/24 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
Python类装饰器实现方法详解
2018/12/21 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
python3.8下载及安装步骤详解
2020/01/15 Python
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
文员岗位职责
2013/11/09 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
团购业务员岗位职责
2014/03/15 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
在校学生证明格式
2015/06/24 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
k-means & DBSCAN 总结
2021/04/27 Python