详解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功能函数代码
Jun 23 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
js获取url传值的方法
Dec 18 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 Javascript
详解JS中的立即执行函数
Feb 24 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
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
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
浅谈php的优缺点
2015/07/14 PHP
CI框架常用函数封装实例
2016/11/21 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
python通过ssh-powershell监控windows的方法
2015/06/02 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python 动态加载的实现方法
2017/12/22 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
Python换行与不换行的输出实例
2020/02/19 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
九年级科学教学反思
2014/01/29 职场文书
大二自我鉴定
2014/01/31 职场文书
销售队伍口号
2014/06/11 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2014年妇女工作总结
2014/12/06 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Oracle 多表查询基本语法实例
2022/04/18 Oracle