vue过滤器

过滤器的本质是一个有参数有返回值的方法。

过滤器的作用:实现数据的筛选、过滤、格式化。

过滤器使用:

语法:
  <any>{{表达式 | 过滤器}}</any>

举个例子:
  <h1>{{price | myCurrency}}</h1>

过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,这点要切记。

全局过滤器(任何组件都能用)

main.js中定义全局过滤器

//  定义长度为10的过滤器
Vue.filter('length10',(e) =>{
  return e.slice(0,10) + '...'
})

//  定义转大小写的过滤器
Vue.filter('toUpperCase',(e)=>{
 return  e.toUpperCase()
})

app.vue使用

<template>
  <div>{{str}}</div>
  <div>{{str | length10}}</div>
  <div>{{str1 | length10 | toUpperCase}}</div>
</template>

<script>
export default {
    data(){
        return {
          str:'公众号“前端伪大叔”,欢迎大家前来关注!',
          str1:'qianduanweidashu'
        }
    }
}
</script>

总结:过滤器使用方法是‘|’直接使用,可以使用多个过滤器。

过滤器传参

main.js

Vue.filter('Biography',(e,str1) =>{
     return e.slice(0,str1) + '...'
}

App.vue

<template>
<div>{{str | Biography(9)}}</div>
</template>

<script>
export default {
    data(){
        return {
          str:'公众号“前端伪大叔”,欢迎大家前来关注!',
        }
    }
}
</script>

组件内过滤器

组件内过滤器,需要定义在filtets这个对象中,对象中定义的都是方法。

<template>
  <div>{{str | length(9) }}</div>
  <div>{{str1 | length(9) | toUpperCase}}</div>
</template>

<script>
export default {
     data() {
        return {
          str: "公众号“前端伪大叔”,欢迎大家前来关注!",
          str1:'qianduanweidashu'
        };
      },
      // 这里filters是这个对象
      filters: {
        // 自行输入长度
        length(e, num) {
          return e.slice(0, num) + "...";
        },
        // 转为大写
        toUpperCase(e) {
          return e.toUpperCase();
        }
      }
}
</script>

总结:filters是局部过滤器,只能在组件内使用;和全局过滤器一样可以传参,使用同时多个过滤器。

注意

1、 当有局部和全局两个名称相同的过滤器时候,会以就近原则进行调用,即:局部过滤器优先于全局过滤器被调用;

2、 一个表达式可以使用多个过滤器。过滤器之间需要用管道符“|”隔开。其执行顺序从左往右。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值