当前位置:首页 > VUE

vue filter 实现

2026-01-07 23:57:33VUE

在 Vue.js 中,过滤器(Filter)是一种用于文本格式化的功能,可以在模板中直接使用。以下是实现过滤器的详细方法:

全局过滤器注册

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

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

模板中使用方式:

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

局部过滤器注册

在组件选项中定义 filters 属性,仅在该组件内可用:

vue filter 实现

new Vue({
  filters: {
    currency(value) {
      return '$' + value.toFixed(2)
    }
  }
})

模板调用:

<p>{{ price | currency }}</p>

链式调用

多个过滤器可以串联使用:

vue filter 实现

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

过滤器参数

过滤器可以接收额外参数:

Vue.filter('truncate', function(value, length) {
  return value.slice(0, length) + '...'
})

模板调用:

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

注意事项

  • Vue 3 已移除过滤器功能,推荐使用计算属性或方法替代
  • 过滤器应设计为纯函数,避免产生副作用
  • 复杂逻辑建议使用计算属性实现

对于 Vue 3 项目,替代方案如下:

// 使用计算属性
computed: {
  formattedText() {
    return this.text.toUpperCase()
  }
}
// 或使用方法
methods: {
  formatText(text) {
    return text.toUpperCase()
  }
}

标签: vuefilter
分享给朋友:

相关文章

vue实现评论编辑

vue实现评论编辑

Vue 实现评论编辑功能 数据绑定与表单结构 使用 v-model 双向绑定评论内容到表单输入框,确保编辑时能显示原内容并同步修改。示例模板结构: <template> <d…

vue实现生成二维码

vue实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> <…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue实现功能

vue实现功能

Vue 功能实现方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现常见功能的几种方法: 数据绑定与响应式更新 在 Vue 中,数据绑定通过 v-model…

vue实现贴图

vue实现贴图

Vue 实现贴图功能 在Vue中实现贴图功能通常涉及将图片动态添加到指定位置或元素上。以下是几种常见实现方式: 使用v-bind动态绑定图片 通过数据驱动的方式动态更换图片源: <tem…

vue  select实现

vue select实现

Vue Select 实现方法 在 Vue 中实现下拉选择功能可以使用原生 <select> 标签或第三方库如 vue-select。以下是两种方法的详细说明: 原生 HTML Sele…