Vue 跨域
Vue 组合 API 

Vue 自定义过滤器

在 Vue.js 中,可以使用自定义过滤器来处理文本格式化等任务。自定义过滤器可以在两个地方进行定义:全局过滤器和局部过滤器。


全局过滤器

全局过滤器可以在整个Vue应用中使用,定义方法如下:

//定义全局过滤器
Vue.filter('filterName', function(value) {
  //这里是过滤器的具体实现逻辑
  return newValue; // 返回处理后的值
});

在模板中使用全局过滤器:

<!-- 在模板中使用全局过滤器 -->
<div>
  {{ message | filterName }}
</div>


局部过滤器

局部过滤器则只能在定义它们的Vue组件内部使用:

// 组件定义中的局部过滤器
export default {
  data() {
    return {
      message: 'Hello World!'
    };
  },
  filters: {
    filterName(value) {
      // 这里是过滤器的具体实现逻辑
      return newValue; // 返回处理后的值
    }
  }
};

在组件的模板中使用局部过滤器:

<!-- 在组件模板中使用局部过滤器 -->
<div>
  {{ message | filterName }}
</div>


过滤器的参数

过滤器可以接收额外的参数,参数使用管道符号(|)分隔。例如:

<!-- 传递额外的参数给过滤器 -->

<div>
  {{ message | filterName(arg1, arg2) }}
</div>

在过滤器的实现函数中,接收参数的方式如下:

// 过滤器的实现函数中接收参数
Vue.filter('filterName', function(value, arg1, arg2) {
  // value 是管道符号左边的表达式结果
  // arg1 和 arg2 是传递的参数
  return transformedValue; // 返回处理后的值
});


使用示例

以下是一个简单的示例,演示如何定义和使用一个全局过滤器:

//定义全局过滤器
Vue.filter('toUpperCase', function(value) {
  return value.toUpperCase();
});
//创建 Vue 实例
new Vue({
  el: '#app',
  data: {
    message: 'hello world!'
  }
});

在 htm 中使用过滤器

<!-- 模板中的使用 -->
<div id="app">
  {{ message | toUpperCase}}
</div>

在这个示例中,capitalize过滤器将文本的首字母大写,所以输出为 "Hello vue!"