VUE 过滤器的使用

108 阅读1分钟

VUE 过滤器

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

过滤器的定义和使用

定义

全局定义和局部定义两种方式

// 全局注册
Vue.filter('toRMB', function (value) {
  return `¥${value}`
})

new Vue({
  el: '#app',
  data: {
    money: 826.26,
  },

  // 局部注册
  filters: {
    toFixed: function(money) {
      return money.toFixed(1)
    },
  },
)}
使用

在双花括号中使用管道符(pipeline)  | 隔开,或者v-bind 表达式

<h2>过滤器的使用-添加前缀</h2>
<p>{{352.11 | toRMB}}</p>
<p>{{657 | toRMB}}</p>
<p>{{657.22 | toFixed }}</p>
<p>{{money | toFixed }}</p>

还可以链式使用,注意先后的顺序,如下面的先添加¥符号再进行小数位变换将会出错,因此要注意先后顺序

<p>{{ money | toFixed | toRMB }}</p>

过滤器函数的多层参数

过滤器函数是指接收的参数不止value这一个,还可以添加lengthsuffix参数

<h2>多重参数</h2>
<p>{{text}}</p>
<p>{{text | readMore(20,'...')}}</p>
new Vue({
  el: '#app',
  data: {
    text: 'hello I love u, will u love me ?',
  },
  filters: {
    readMore: function (value,length,suffix) {
      console.log(arguments);
      return value.substr(0,length) + suffix;
    },
  }
})