当前位置:首页 > VUE

vue filter 实现

2026-03-27 20:46:15VUE

Vue.js 过滤器(Filter)实现方法

Vue.js 的过滤器用于格式化文本,可以在双花括号插值和 v-bind 表达式中使用。以下是实现过滤器的几种方法:

全局过滤器注册

在 Vue 实例化之前,通过 Vue.filter() 方法全局注册过滤器,所有组件均可使用:

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

new Vue({ /* options */ });

使用方式:

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

局部过滤器注册

在组件选项中通过 filters 属性定义局部过滤器,仅当前组件可用:

vue filter 实现

new Vue({
  filters: {
    reverse(value) {
      return value.split('').reverse().join('');
    }
  }
});

使用方式:

<p>{{ text | reverse }}</p>

链式调用过滤器

多个过滤器可以串联使用,执行顺序从左到右:

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

带参数的过滤器

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

vue filter 实现

Vue.filter('truncate', function(value, length) {
  return value.length > length ? value.substring(0, length) + '...' : value;
});

使用方式:

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

注意事项

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

替代方案(Vue 3 推荐):

const app = Vue.createApp({
  methods: {
    capitalize(value) {
      /* 实现逻辑 */
    }
  }
});

模板中使用:

<p>{{ capitalize(text) }}</p>

标签: vuefilter
分享给朋友:

相关文章

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue分类实现

vue分类实现

Vue分类实现方法 在Vue中实现分类功能通常涉及数据分组、动态渲染和交互逻辑。以下是几种常见的实现方式: 基于计算属性的分类 通过计算属性对原始数据进行分组处理,适合静态或少量数据分类: com…

vue实现 toast

vue实现 toast

Vue 实现 Toast 组件 在 Vue 中实现 Toast 组件可以通过多种方式完成,以下是几种常见的方法: 使用全局组件和事件总线 创建一个全局的 Toast 组件,并通过事件总线或 Vue…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…