当前位置:首页 > VUE

vue filter 实现

2026-02-10 11:02:06VUE

Vue 过滤器(Filter)实现方法

Vue 过滤器用于格式化文本,常用于日期、货币等场景。Vue 2.x 原生支持过滤器,Vue 3.x 已移除,但可通过全局属性或组合式 API 模拟类似功能。

Vue 2.x 过滤器实现

全局过滤器注册main.js 或入口文件中定义全局过滤器:

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

局部过滤器注册 在组件选项中定义:

filters: {
  currency(value, symbol = '$') {
    return symbol + value.toFixed(2)
  }
}

模板中使用

<p>{{ message | capitalize }}</p>
<p>{{ price | currency('¥') }}</p>

Vue 3.x 替代方案

全局属性模拟main.js 中:

app.config.globalProperties.$filters = {
  dateFormat(value) {
    return new Date(value).toLocaleDateString()
  }
}

组合式 API 实现 创建可复用函数:

// utils/filters.js
export const useFilters = () => {
  const truncate = (text, length = 30) => {
    return text.length > length 
      ? text.substring(0, length) + '...' 
      : text
  }
  return { truncate }
}

组件中使用

<script setup>
import { useFilters } from './utils/filters'
const { truncate } = useFilters()
</script>

<template>
  <p>{{ truncate(longText) }}</p>
</template>

过滤器链式调用

Vue 2.x 支持多个过滤器串联:

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

注意事项

  • Vue 3 移除过滤器主要因为其功能与计算属性/方法重叠
  • 复杂逻辑建议使用计算属性替代
  • 过滤器应保持纯函数特性,避免副作用

vue filter 实现

标签: vuefilter
分享给朋友:

相关文章

vue实现选择本地文件

vue实现选择本地文件

实现文件选择功能 在Vue中实现本地文件选择可以通过HTML原生的<input type="file">元素实现。创建一个基本的文件选择组件: <template> &…

vue实现点击旋转轮盘

vue实现点击旋转轮盘

实现点击旋转轮盘效果 在Vue中实现点击旋转轮盘效果,可以通过CSS动画和Vue的数据绑定结合完成。以下是一个完整的实现方案: 准备工作 需要安装Vue.js环境,可以通过CDN引入或使用Vue…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…

vue实现异步

vue实现异步

Vue 实现异步操作的常见方法 Vue 提供了多种方式来处理异步操作,包括数据获取、事件处理等场景。 使用 async/await 在 Vue 方法中可以直接使用 async/await 语法处理…

vue 实现轮播

vue 实现轮播

Vue 实现轮播的方法 使用第三方库(如 Swiper) 安装 Swiper 库: npm install swiper 在 Vue 组件中引入 Swiper: <template&…

vue mvvm 实现

vue mvvm 实现

Vue MVVM 实现原理 Vue.js 的 MVVM(Model-View-ViewModel)架构通过数据绑定和响应式系统实现视图与数据的自动同步。以下是其核心实现机制: 数据劫持与响应式系统…