在vue的学习过程中,我发现过滤器是一个很好用的工具,过滤器(Filters)来渲染数据是一种很有趣的方式。过滤器不能替代Vue中的methods、computed或者watch,不改变真正的data,而只是改变渲染的结果,并返回过滤后的版本。在很多不同的情况下,过滤器都是有用的,比如尽可能保持API响应的干净,并在前端处理数据的格式。
在你希望避免重复和连接的情况下,它们也可以有效地封装成可重用代码块背后的所有逻辑。
![8e29e2586dc561ad23038761cf03f782.png](https://img-blog.csdnimg.cn/img_convert/8e29e2586dc561ad23038761cf03f782.png)
在我看来过滤器的使用,就像是一部电视剧,浙江台播放50集结束,江苏台可能播放48集结束,放到网上爱奇艺也可能变成了60集。这就是过滤器的效果,让我们对于一份数据可以随心所欲做不同的处理,同时不改变它本身,又得到我们想要的结果。
下面分享几个常用的过滤器:
//去除空格 type 1-所有空格 2-前后空格 3-前空格 4-后空格function trim(value, trim) { switch (trim) { case 1: return value.replace(/s+/g, ""); case 2: return value.replace(/(^s*)|(s*$)/g, ""); case 3: return value.replace(/(^s*)/g, ""); case 4: return value.replace(/(s*$)/g, ""); default: return value; }}
//任意格式日期处理//使用格式:// {
{ '2018-09-14 01:05' | formaDate(yyyy-MM-dd hh:mm:ss) }} // {
{ '2018-09-14 01:05' | formaDate(yyyy-MM-dd) }} // {
{ '2018-09-14 01:05' | formaDate(MM/dd) }} 等function formaDate(value, fmt) { var date = new Date(value); var o = { "M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "h+": date.getHours(), //小时 "m+": date.getMinutes(), //分 "s+": date.getSeconds(), //秒 "w+": date.getDay(), //星期 "q+": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 }; i