Vue过滤器 filter

过滤器

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化(比如在123后面加上abc,或者将一些状态值转为具体的描述:state=0显示‘已领取’等)。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式

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

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

全局过滤器

在创建 Vue 实例之前全局定义过滤器:

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

new Vue({
// ...
})
```

组件过滤器(局部)

```
<div class="status">{{item.is_verify|prizeState}}</div>

//filters过滤器是和生命周期是同级的
created(){
        this.getPrizeList()
    },
filters:{
        prizeState:function(val){//参数val就是上面的item.is_verify,花括号内的插值会是prizeState中return出来的数据
            if(val==0){
                return '未使用'
            }
            if(val==1){
                return '已使用'
            }
            if(val==11){
                return '未开始'
            }
            if(val==12){
                return '已过期'
            }
        }
    },
```

用法

1、过滤器函数总接收表达式的值 (之前的操作链的结果) 作为第一个参数。在上述例子中,prizeState 过滤器函数将会收到 item.is_verify 的值作为第一个参数,插值的内容会变为prizeState函数return出去的数据

如上述例子,如果item.is_verify的值是1,插值就会是‘未使用’

2、过滤器可以串联

{{ message | filterA | filterB }}

上面的这个例子中filterA接收的参数是message,filterB接收的是filterA中return出来的结果

3、过滤器是 JavaScript 函数,因此可以接收参数

{{ message | filterA(参1, 参2) }}

如上:filterA 被定义为接收三个参数的过滤器函数,第一个参数是message,剩下两个参数是传到filterA中的两参数

注意:全局注册时是filter,没有s的。而组件过滤器是filters,是有s的。

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

推荐阅读更多精彩内容

  • 此笔记关于filter的官方文档的一些讲解及个人的一些拓展 简单介绍一下过滤器,顾名思义,过滤就是一个数据经过了这...
    chenjieyi阅读 174,047评论 21 62
  • 过滤器,过滤东西呗.把一个值丢进过滤器,然后过滤器对此值进行过滤.返回过滤后的数据. Vue过滤器分全局过滤器和组...
    人话博客阅读 14,179评论 1 50
  • 过滤器filter可使用在花括号{{ } 和v-bind表达式两个地方;放在管道 |的后面。 过滤器表达式总是接收...
    嗨姑娘_大个子阅读 5,169评论 0 1
  • 自称高三班主任李老师的人加了我的微信,我却以为那是盗号的骗子。晚课将近结束的时候,我给李老师发了短信,告知他这件事...
    雨瞳Rainton阅读 2,224评论 0 0
  • 上午家门口的全民健身广场举行新春招聘会,刚好有亲戚在现场设点招聘,我带着桐也前往凑热闹。招聘会的主题是:回...
    蕴阳_渡己成长阅读 1,241评论 5 4