当前位置:首页 > VUE

vue过滤器实现

2026-01-21 11:49:53VUE

Vue 2 过滤器实现

Vue 2 提供了过滤器功能,用于格式化文本显示。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。

定义全局过滤器

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

定义局部过滤器

new Vue({
  filters: {
    truncate: function(value, length) {
      if (!value) return ''
      value = value.toString()
      return value.length > length ? value.substring(0, length) + '...' : value
    }
  }
})

使用过滤器

vue过滤器实现

<!-- 双花括号中 -->
{{ message | capitalize }}

<!-- v-bind 中 -->
<div v-bind:id="rawId | formatId"></div>

<!-- 链式调用 -->
{{ message | filterA | filterB }}

<!-- 接收参数 -->
{{ message | filterA('arg1', arg2) }}

Vue 3 替代方案

Vue 3 已移除过滤器功能,推荐使用方法或计算属性替代。

使用方法替代

methods: {
  capitalize(value) {
    if (!value) return ''
    return value.charAt(0).toUpperCase() + value.slice(1)
  }
}

模板中使用方法

vue过滤器实现

{{ capitalize(message) }}

使用计算属性

computed: {
  formattedMessage() {
    return this.capitalize(this.message)
  }
}

自定义指令实现类似功能

对于复杂格式化需求,可以使用自定义指令。

Vue.directive('format', {
  bind(el, binding) {
    el.textContent = binding.value.toUpperCase()
  },
  update(el, binding) {
    el.textContent = binding.value.toUpperCase()
  }
})
<div v-format="message"></div>

国际化过滤器示例

实现多语言文本转换的过滤器示例:

Vue.filter('i18n', function(value) {
  const translations = {
    'hello': '你好',
    'world': '世界'
  }
  return translations[value] || value
})
{{ 'hello' | i18n }}

注意:Vue 3 项目建议使用专门的国际化库如 vue-i18n 替代过滤器实现。

标签: 过滤器vue
分享给朋友:

相关文章

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <tem…

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue实现同步

vue实现同步

Vue 实现同步的方法 在 Vue 中实现同步操作通常涉及数据绑定、状态管理和异步操作的处理。以下是几种常见的方法: 使用计算属性(Computed Properties) 计算属性基于响应式依赖进…

vue实现节流

vue实现节流

vue实现节流的方法 在Vue中实现节流(throttle)功能,通常用于限制高频事件的触发频率,例如滚动、输入或按钮点击。以下是几种常见的实现方式: 使用Lodash的throttle函数 安装L…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…