详解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 相关文章推荐
js原型链原理看图说明
Jul 07 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
jQuery中:first选择器用法实例
Dec 30 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
图片文字识别(OCR)插件Ocrad.js教程
Nov 26 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 Javascript
Element Tooltip 文字提示的使用示例
Jul 26 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
Sep 24 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
短波问题解答
2021/02/28 无线电
php中显示数组与对象的实现代码
2011/04/18 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Django 前后台的数据传递的方法
2017/08/08 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
python实现简单的五子棋游戏
2020/09/01 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
自荐书范文
2013/12/08 职场文书
上班上网检讨书
2014/01/29 职场文书
学生思想表现的评语
2014/01/30 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
教师党员自我评价2015
2015/03/04 职场文书