vue的过滤器

155 阅读1分钟

什么是过滤器?

过滤器就是一个函数, 传入值返回处理后的值

使用方式

  • 插值表达式和v-bind表达式

语法语法:

  • Vue.filter("过滤器名", (值) => {return "返回处理后的值"})
  • filters: {过滤器名字: (值) => {return "返回处理后的值"}
<template>
  <div>
    <p>原本的数据:{{message}}</p>
    <!-- 过滤
         语法:变量|过滤器名
     -->
     <p>过滤翻转:{{message | rev}}</p>
     <p :title="message | toUp ">鼠标悬停</p>
  </div>
</template>

<script> 

export default {
  data () {
    return {
      message:'Hello Vue'
    }
  },
/*    filters:{
          过滤器名(值){
            return 返回处理的数据
          }
      } 
*/
  filters: {
      //鼠标悬停时显示为大写
      toUp (val) {
      return val.toUpperCase()
    },
    //翻转字符串
    rev(val){
      return val.split('').reverse().join('')
    }
    }
  }

</script>

<style>

</style>

多个过滤器和传参

  • 语法:

    • 过滤器传参: vue变量 | 过滤器(实参)
    • 多个过滤器: vue变量 | 过滤器1 | 过滤器2
  • 作用 : 可以同时使用多个过滤器,或者给过滤器传参

<template>
  <div>
    <p>原本的数据:{{message}}</p>
    <!-- 过滤
         语法:变量|过滤器名
     -->
     <p>过滤翻转:{{message | rev}}</p>
      <!-- 过滤
         语法:变量|过滤器1|过滤器2(参数)
     -->
     <p :title="message | toUp | rev('|')">鼠标悬停</p>
  </div>
</template>

<script> 

export default {
  data () {
    return {
      message:'Hello Vue'
    }
  },
/*    filters:{
          过滤器名(值){
            return 返回处理的数据
          }
      } 
*/
  filters: {
      toUp (val) {
      return val.toUpperCase()
    },
    rev(val){
      return val.split('').reverse().join('')
    }
    }
  }

</script>

<style>

</style>