当前位置:首页 > VUE

vue filter 实现

2026-03-07 10:53:08VUE

在 Vue.js 中,过滤器(Filter)是一种用于文本格式化的功能,可以在模板中通过管道符 | 调用。尽管 Vue 3 已移除内置过滤器支持,但在 Vue 2 中仍可自定义过滤器。以下是实现方法:

全局过滤器

通过 Vue.filter 注册全局过滤器,所有组件均可使用:

Vue.filter('capitalize', function(value) {
  if (!value) return ''
  return value.toString().charAt(0).toUpperCase() + value.slice(1)
})

模板中使用:

vue filter 实现

<p>{{ message | capitalize }}</p>

局部过滤器

在组件选项中定义 filters 属性:

export default {
  filters: {
    truncate(value, length) {
      return value.length > length 
        ? value.slice(0, length) + '...' 
        : value
    }
  }
}

模板中使用:

vue filter 实现

<p>{{ longText | truncate(50) }}</p>

链式调用

多个过滤器可串联使用:

<p>{{ text | filterA | filterB }}</p>

注意事项

  • 过滤器默认第一个参数为管道前的值,后续参数为调用时传入的参数
  • 过滤器应设计为纯函数,避免副作用
  • 复杂逻辑建议使用计算属性替代

Vue 3 推荐使用组合式 API 的 computed 或方法调用替代过滤器功能。例如:

import { computed } from 'vue'

export default {
  setup() {
    const formattedText = computed(() => {
      return text.value.toUpperCase()
    })
    return { formattedText }
  }
}

标签: vuefilter
分享给朋友:

相关文章

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-ra…

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue实现骰子

vue实现骰子

Vue 实现骰子功能 创建 Vue 组件 在 Vue 项目中创建一个骰子组件,例如 Dice.vue。该组件包含骰子的外观和逻辑。 <template> <div class=…

vue实现123456

vue实现123456

Vue 实现数字 123456 的显示 在 Vue 中显示数字 123456 非常简单,可以通过以下方法实现: 方法一:直接在模板中显示 <template> <div>…

vue网页实现

vue网页实现

Vue 网页实现指南 环境准备 安装 Node.js 和 npm/yarn,确保环境配置正确。使用 Vue CLI 或 Vite 创建项目框架,快速搭建开发环境。 npm install -g @v…