一直没有怎么用过 Vue 的 过滤器 API,都是直接用 AntD Pro 当中提供的数字千分格式化、时间格式化之类的,没有自己去声明过,主要是因为 Array.prototype.filter
的先入为主,一直把 vue.filter
理解成为了筛选,而不是过滤器。
其实,vue.filter
是借鉴了 Linux 当中的 Pipe 符号 (|
) 来处理数据 ,然后借用了 filter
这个名字:
利用 Linux 所提供的管道符 “
|
” 将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入
其实我觉得如果直接用 pipe
来命名其实就更好理解了,但是也许是因为前端圈子接触到 pipe
的人并不多,使用 filter
这个熟悉的单词可能更加容易让大众接受。
使用起来确实很方便,用 |
符号分隔就行,会按照 从前往后的顺序 依次 传入过滤器,然后返回转换后的值。
等到后来再遇到适合的场景想起来使用 filter
,但又因为项目的历史原因没有去使用,因为自己都是局部使用 computed
计算 和 方法调用返回 来处理(也是Vue3所推荐的替代过滤器的方式)