过滤器

过滤器是 Vue 2.x 中用于文本格式化的功能。它可以用在双花括号插值和 v-bind 表达式中,将数据转换后再显示。

基本概念

过滤器本质是一个函数,接收一个值,返回处理后的值:

<div id="app">
  <p>{{ message | capitalize }}</p>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    message: 'hello vue'
  },
  filters: {
    capitalize(value) {
      if (!value) return ''
      value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    }
  }
})
</script>

输出:Hello vue

过滤器的使用场景

  • 文本格式化(大小写、截断)
  • 日期格式化
  • 数字格式化(货币、千分位)
  • 数据转换

过滤器 vs 计算属性

使用过滤器:

  • 简单的数据转换
  • 需要在多处复用
  • 模板中直接使用

使用计算属性:

  • 复杂的数据处理
  • 需要缓存结果
  • 依赖多个数据源

本章内容

  • 过滤器定义:全局和局部过滤器的定义方式
  • 过滤器使用:在模板中使用过滤器
  • 过滤器参数:传递参数和链式调用
  • 常见过滤器示例:实用的过滤器案例

注意

Vue 3 已移除过滤器

在 Vue 3 中,过滤器已被移除。建议使用:

  • 计算属性替代
  • 方法调用替代
  • 全局工具函数

如果需要在 Vue 3 中使用类似功能,可以创建全局方法:

app.config.globalProperties.$filters = {
  currency(value) {
    return '¥' + value.toFixed(2)
  }
}
<p>{{ $filters.currency(price) }}</p>

学习建议

  1. 理解过滤器的作用和限制
  2. 掌握常用过滤器的写法
  3. 了解 Vue 3 的替代方案
  4. 在 Vue 2 项目中合理使用过滤器