vue过滤器用法实例分析

时间:2021-05-26

本文实例讲述了vue过滤器用法。分享给大家供大家参考,具体如下:

过滤器:

vue提供过滤器:

capitalizeuppercasecurrency....

<div id="box"> {{msg|currency ¥}} </div>

debounce 配合事件,延迟执行

<div id="box"> <input type="text" @keyup="show | debounce 2000"> </div>

数据配合使用过滤器:

limitBy限制几个
limitBy 参数(取几个)
limitBy 取几个 从哪开始

<div id="box"> <ul> <!--取2个--> <li v-for="val in arr | limitBy 2"> {{val}} </li> <br/> <br/> <!--取2个,从第arr.length-2个开始取--> <li v-for="val in arr | limitBy 2 arr.length-2"> {{val}} </li> </ul> </div> <script> var vm=new Vue({ data:{ arr:[1,2,3,4,5] }, methods:{ } }).$mount('#box'); </script>

filterBy 过滤数据
filterBy '谁'

<div id="box"> <input type="text" v-model="a"> <ul> <li v-for="val in arr | filterBy a"> {{val}} </li> </ul> </div> <script> var vm=new Vue({ data:{ arr:['width','height','background','orange'], a:'' }, methods:{ } }).$mount('#box'); </script>

orderBy 排序

orderBy 谁 1/-1
1 -> 正序
2 -> 倒序

<div id="box"> <input type="text" v-model="a"> <ul> <li v-for="val in arr | orderBy -1"> {{val}} </li> </ul> </div> <script> var vm=new Vue({ data:{ arr:['width','height','background','orange'], a:'' }, methods:{ } }).$mount('#box'); </script>

自定义过滤器: model ->过滤 -> view

Vue.filter(name,function(input){});<div id="box"> {{a | toDou 1 2}} </div> <script> Vue.filter('toDou',function(input,a,b){ alert(a+','+b); return input<10?'0'+input:''+input; }); var vm=new Vue({ data:{ a:9 }, methods:{ } }).$mount('#box'); </script>

时间转化器

<div id="box"> {{a | date}} </div> <script> Vue.filter('date',function(input){ var oDate=new Date(input); return oDate.getFullYear()+'-'+(oDate.getMonth()+1)+'-'+oDate.getDate()+' '+oDate.getHours()+':'+oDate.getMinutes()+':'+oDate.getSeconds(); }); var vm=new Vue({ data:{ a:Date.now()//返回1970 年 1 月 1日午夜与当前日期和时间之间的毫秒数。 }, methods:{ } }).$mount('#box'); </script>

过滤html标记

双向过滤器:*

Vue.filter('filterHtml',{  read:function(input){ //model-view    return input.replace(/<[^<+]>/g,'');  },  write:function(val){ //view -> model    return val;  }});

数据 -> 视图

model -> view

view -> model

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> </style> <script src="vue.js"></script> <script> //<h2>welcome</h2> Vue.filter('filterHtml',{ read:function(input){ //model-view alert(1); return input.replace(/<[^<]+>/g,''); }, write:function(val){ //view -> model console.log(val); return val; } }); window.onload=function(){ var vm=new Vue({ data:{ msg:'<strong>welcome</strong>' } }).$mount('#box'); }; </script></head><body> <div id="box"> <input type="text" v-model="msg | filterHtml"> <br> {{msg | filterHtml}} </div></body></html>

希望本文所述对大家vue.js程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章