当前位置:首页 > 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 属性定义局部过滤器,仅当前组件可用:

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

使用方式:

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

链式调用过滤器

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

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

带参数的过滤器

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

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) {
      /* 实现逻辑 */
    }
  }
});

模板中使用:

vue filter 实现

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

标签: vuefilter
分享给朋友:

相关文章

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template>…

vue课程实现

vue课程实现

Vue 课程实现方案 课程内容设计 Vue课程应从基础到高级逐步展开,涵盖Vue核心概念、组件化开发、状态管理、路由、构建工具等。基础部分包括Vue实例、模板语法、计算属性和侦听器。中级部分深入组件通…

vue滚动实现

vue滚动实现

Vue 滚动实现方法 使用原生滚动 在 Vue 中可以通过 ref 获取 DOM 元素,调用原生滚动方法实现滚动效果。适用于简单场景。 <template> <div ref=…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue实现treeselect

vue实现treeselect

Vue TreeSelect 实现方法 使用 Vue 实现 TreeSelect 组件可以通过以下几种方式完成,包括使用现成的第三方库或自行封装组件。 使用第三方库 推荐使用成熟的第三方 TreeS…

vue实现 hover

vue实现 hover

实现 Vue 中的 hover 效果 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是常见的几种方法: 使用 CSS 伪类 最简单的方式是直接使用 CSS 的 :hover 伪类,无…