Vue2 之 过滤器

目录

​编辑

1、过滤器简介

1.1、全局过滤器与局部过滤器


1、过滤器简介

1.1、全局过滤器与局部过滤器

过滤器本质上是一个函数,与自定义指令类似。

        全局过滤器

Vue.filter(id, [definition])

         局部过滤器

new Vue({
  el: '#app',
  filters: {
      definition(value): {
          ...
          }
      }
  })

案例:将字符串首字母转换为大写字母的全局过滤器

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

如果换成局部过滤器

let vm = new Vue({
    el: '#app',
    data: { // 参数定义,字典形式
    },
    computed: { // 计算属性,多次调用,只计算一次
    },
    methods: { // 普通方法,多次调用,多次计算
    },
    filters: { // 过滤器
        capitalize(value) {
            if (!value) return '';
            value = value.toString();
            return value.charAt(0).toUpperCase() + value.slice(1);
        }
    }
})

注意:

  1. 当全局过滤器和局部过滤器重名,会采用局部过滤器
  2. 与自定义命令一样,全局过滤器可以在任何 Vue 实例的模板中使用,而局部过滤器只能在该实例绑定的视图中使用

过滤器可以使用在两个地方:

    双花括号:{{ 变量 | 过滤器 }}
    v-bind 表达式:v-bind:href=“变量 | 过滤器”

2、过滤器的参数

过滤器函数总是接收表达式的值作为第一个参数,过滤器本质上是一个 JS 函数,自然可以接收多个参数。

    不建议把过滤器功能做的很复杂,这违背了过滤器的设计初衷,比如:Vue.filter(‘format’, function (value, …params) {…})

实例:为表达式的值添加前后缀的过滤器
 




    
    Title



过滤器

{{ filename | format('vue', suffix) }}

 3、过滤器的串联




    
    Title
    



过滤器

{{ message | uppercase | reverse }}

你可能感兴趣的:(Vue2,vue.js,前端,javascript)