vue过滤器的使用(小白教程,学不会你来打我)


前言

在实际的开发中,接口返回的数据中通常包含了很多状态,这些状态的值通常都是以数字或者字符表示,比如:type : " 01 ",假设00代表未开始01代表进行中02代表已结束
那么拿到接口的数据后,不想改变这个数据的值,只是显示对应的文字;或者对这个数据进行处理之后再使用,这时就可以vue的过滤器


提示:以下是本篇文章正文内容,下面案例可供参考

一、过滤器是什么?

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。

二、定义过滤器

1.本地过滤器

代码如下(示例):
这个示例是官网示例。这个过滤器的作用,将一个纯字母字符串的第一个字母变成大写
在vue文件中定义本地过滤器

  data(){
    
    
  	message : 'tom'
  },
  filters :{
    
    
    capitalize: function (value) {
    
    
      if (!value) return ''
        value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    }
  }

使用

{ { message | capitalize }}

结果:Tom

2.全局过滤器

1.创建filters.js 文件

在src下创建一个filters文件夹,并在下面创建一个js文件filters.js
创建位置与名称都可以随便命名,不过为了顾名思义,最好还是叫filters

在这里插入图片描述
filters.js如下

	export function type(val){
    
    
    var value = ''
    switch(val){
    
    
        case '00':
            value = '未开始'
        break
        case '01':
            value = '进行中'
        break
        case '02':
            value = '已结束'
        break
    }
    return value
}

export function isEnd(val){
    
    
    var value = ''
    switch(val){
    
    
        case '0000':
            value = '是'
        break
        case '02':
            value = '否'
        break
    }
    return value
}

//还可以定义多个function,看自己需求
//..............

2.注册全局过滤器

在main.js引用filters.js 一定要引用才生效

import * as filters from './filters/filters'  //引用。相对路径根据你创建的位置与名称自行修改

console.log('filters------',filters)
//在Vue实例创建之前注册全局过滤器
Object.keys(filters).forEach(key => {
    
    
  Vue.filter(key, filters[key])
})

//Vue实例
new Vue({
    
    
  router,
  store,
  render: h => h(App)
}).$mount("#app");

附上:过滤器官方文档

Vue.filter(str, fun)方法

参数

  • str----类型:string。过滤器的名称
  • fun—类型:Function。处理str的函数

用法

// 注册
Vue.filter(‘my-filter’, function (value) {
// 返回处理后的值
})

// getter,返回已注册的过滤器
var myFilter = Vue.filter(‘my-filter’)

三、使用

1.在{ { }}花括号中使用

在数据中添加两个变量,实际开发中这两个数据来源于接口,这里为了方便,直接给了一个初始值,效果是一样的。
data() {
    
    
    return {
    
    
      test1 : '01',  //模拟接口数据
      test2 : '02'   //模拟接口数据
    }
  },

html模板中:

<div>{
   
   {test1 | orderType}}</div>
<div>{
   
   {test2 | isEnd}}</div>

test1的值是字符串
|是Vue.js固定语法格式,管道标识,后面跟的就是过滤器
orderTypeisEnd就是定义在filters.js中的过滤器的名字。

上述表达式的含义:|前的字符串会被作为后面参数传入到过滤器中,最后的返回值会显示在页面中。
在这里插入图片描述

2.在v-bind 表达式

<div v-bind:id="test3 | orderType"></div>

3.串联

{ { test | filterA | filterB}}

filterAfilterB定义为接收一个参数的过滤器
test作为参数传入到filterA function中,这个函数的返回值再作为参数,传入filterB中,filterB的返回值作为这个表达式的结果显示在页面中。

4.接受额外参数

{ { message | filterA(‘arg1’, arg2) }}

filterA 被定义为接收三个参数的过滤器函数。其中 message 的值作为第一个参数,普通字符串 ‘arg1’ 作为第二个参数,表达式 arg2 的值作为第三个参数。

总结

以上就是今天要讲的内容,本文简单介绍了vue.js 过滤器的使用

猜你喜欢

转载自blog.csdn.net/qq_36818931/article/details/109078338