上一篇
最近Vue官方团队在2025年7月透露,过滤器(Filters) 仍被保留在Vue 3的兼容层中,尽管Composition API盛行,但简单场景下过滤器依然是数据处理的"快捷方式",今天我们就来好好盘一盘这个看似基础却超实用的功能!
想象你在餐厅点单,服务员端上来的生鱼片(原始数据)直接吃?No!你得蘸酱油/芥末(过滤器处理)才对味吧?
过滤器本质:
{{ 原始数据 | 过滤器 }}
就像管道符 把数据"过滤"成你想要的样子,
<!-- 显示:2025年07月15日 --> <p>{{ new Date() | dateFormat }}</p>
对比案例:
<!-- 不用过滤器(乱) --> <p>{{ user.name.slice(0,1).toUpperCase() + '.' + user.name.slice(1) }}</p> <!-- 用过滤器(爽) --> <p>{{ user.name | formatName }}</p>
app.config.globalProperties.$filters = { currency(value) { return '¥' + value.toFixed(2) } }
export default { filters: { reverse(text) { return text.split('').reverse().join('') } } }
import { getCurrentInstance } from 'vue' export default { setup() { const instance = getCurrentInstance() instance.appContext.config.globalProperties.$filters = { truncate(text, length = 10) { return text.length > length ? text.slice(0, length) + '...' : text } } } }
<!-- 先转大写,再取前3位 --> <p>{{ 'hello' | uppercase | truncate(3) }}</p>
filters: { i18n(key) { const messages = { 'welcome': '欢迎', 'logout': '退出登录' } return messages[key] || key } }
对于频繁调用的过滤器(如表格数据格式化),建议:
Q:过滤器能接收多个参数吗?
A:当然可以!
{{ 100 | multiply(1.2, 3) }}
filters: { multiply(value, rate, times) { return value * rate * times } }
Q:过滤器能修改原始数据吗?
A:❌ 绝对不行!过滤器应该是纯函数,只做数据转换
虽然React等框架没有类似概念,但在Vue生态里:
✅ 简单格式化(日期/货币)优先用过滤器
✅ 复杂逻辑(如数据排序)改用Computed
✅ Vue2项目可以继续放心使用
试着写一个过滤器:
13812345678
显示为 138-****-5678
提示:第二个需求可以用正则表达式匹配URL哦~
💬 你觉得过滤器会被彻底淘汰吗? 在评论区聊聊你的看法吧! #Vue技巧 #前端开发
本文由 柴韶丽 于2025-07-31发表在【云服务器提供商】,文中图片由(柴韶丽)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/496363.html
发表评论