详解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 相关文章推荐
文字幻灯片
Jun 26 Javascript
有趣的javascript数组定义方法
Sep 10 Javascript
jquery indexOf使用方法
Aug 19 Javascript
JS组件Bootstrap Table使用实例分享
May 30 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
Sep 17 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
angular json对象push到数组中的方法
Feb 27 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 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
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
微信小程序事件流原理解析
2019/11/27 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
python通过zabbix api获取主机
2018/09/17 Python
Python中的取模运算方法
2018/11/10 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
税务专业毕业生自荐信
2013/11/10 职场文书
普通员工辞职信
2014/01/17 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
预备党员考察意见范文
2015/06/01 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
MySQL系列之十二 备份与恢复
2021/07/02 MySQL