Vue前端的过滤器

有时候我们想要对后台传过来的数据做一些处理,这就需要过滤器了(也可以自定义方法,不过用过滤器更更方便).
过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示

<!-- 在双花括号中 -->
{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>

关于过滤器的声明位置:
1.你可以在一个组件的选项中定义本地的过滤器

filters: {
  capitalize: function (value) {
    if (!value) return ''
    value = value.toString()
    return value.charAt(0).toUpperCase() + value.slice(1)
  }
}

2.或者在创建 Vue 实例之前定义全局定义过滤器

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

new Vue({
  // ...
})

注意:
1.当全局过滤器和局部过滤器重名时,会采用局部过滤器。
2.过滤器可以串联,{{ message | filterA | filterB }},处理结果以此往后背过滤处理
3.过滤器是 JavaScript 函数,因此可以接收参数:{{ message | filterA('arg1', arg2) }},这里message 的值作为第一个参数,普通字符串 'arg1' 作为第二个参数,表达式 arg2 的值作为第三个参数。

过滤器和计算属性功能非常类似,关于他俩的区别如下

计算属性 过滤器
依赖于一个固定的vue实例 ,在某一个实例中使用 不依赖于实例。可以定义一个全局过滤器,在多个实例中使用
不接受额外参数,依赖于data属性中的变量 不要求是data中的变量,可以是临时变量。可接受额外参数。
有缓存管理机制,可减少页面调用次数 无缓存机制,调用次数,取决于页面中有所多少过滤器
计算属性虽默认为只读,但可以定义为对象,开启可读可写模式 只能读取操作
计算属性被作为一个类属性调用 过滤器被作为一个特殊方法处理

相同点:

都必须有返回值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、vue过滤器的介绍 官方言: Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两...
    前端Tree阅读 669评论 0 1
  • Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bin...
    莫伊剑客阅读 123评论 0 0
  • Vue.js中可以自定义过滤器,用于常见的文本格式化(比如:格式化时间、首字母大写,动态绑定el-tag的样式)过...
    刘淘阅读 390评论 0 0
  • 在vue1.0中,我们见到过很多的内置过滤器,如 filterBy、orderBy等等,但是在vue 2.0中,这...
    妖风小哥哥阅读 202评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,362评论 0 13