当前位置:首页 > 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 支持多个过滤器串联:

vue filter 实现

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

注意事项

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

标签: vuefilter
分享给朋友:

相关文章

vue实现页面截屏

vue实现页面截屏

使用html2canvas库实现截屏 html2canvas是一个流行的JavaScript库,可以将DOM元素转换为Canvas图像。在Vue项目中安装html2canvas: npm insta…

vue插件实现

vue插件实现

Vue 插件实现方法 Vue 插件是一种向 Vue 应用程序添加全局功能的机制。插件可以包含全局指令、过滤器、混入、实例方法等。 插件的基本结构 一个 Vue 插件通常是一个对象或函数,需要暴露一个…

vue 实现协同

vue 实现协同

Vue 实现协同编辑的方案 协同编辑指多个用户同时编辑同一文档并实时同步更改。Vue 结合相关库和技术可轻松实现该功能。 使用 WebSocket 实现实时通信 WebSocket 提供全双工通信,…

vue 实现路径

vue 实现路径

在 Vue 中实现路径管理通常涉及路由配置、动态路由、嵌套路由等场景,以下是具体实现方法: 基础路由配置 安装 Vue Router 并创建路由实例: npm install vue-router…

vue实现指引

vue实现指引

Vue 实现指引功能 Vue 中实现指引功能可以通过多种方式完成,常见的有使用第三方库或自定义实现。以下是几种常见方法: 使用第三方库(如 driver.js) 安装 driver.js: np…

vue如何实现计算

vue如何实现计算

Vue 实现计算的方法 Vue 提供了多种方式来实现计算逻辑,包括计算属性、方法、侦听器等。以下是几种常见的实现方式: 计算属性(Computed Properties) 计算属性是基于它们的响应式…