Vue2.0——过滤器

文章目录

过滤器:对绑定的数据以及格式进行整理

添加位置:v-bind绑定值 ,{{}}添加过滤器。 表达式的尾部以管道的方式引入 |

到现在2.x版本 过滤器都是自定义的 vue允许自定义过滤器

两种过滤器: 全局过滤器局部过滤器
过滤器都需要返回值

一.局部过滤器

在当前组件内部使用

1.无参过滤器

在filters属性上自定义过滤器实现

<template>
<div id="index">
    {{msg|toUpperCase}}
    {{msg|capitalize}}
</div>
</template>
<script>
export default{
    name:"index",
    filters:{
        toUpperCase(value){
            //转化大写过滤器
            return value.toUpperCase();
        },
        capitalize(value){
            //首字母大写 其他小写
            return value.charAt(0).toUpperCase()+value.slice(1).toLowerCase(); 
        }
    },
    
    msg:'abc',

Vue2.0——过滤器

2.带参过滤器

     <input type="text" v-model="sex">
     {{stu|selecSex(sex)}}

<script>
export default{
    name:"index",
    filters:{
        selecSex(value,args){
            //性别过滤器
            let arr=[];
            value.map((item)=>{
                if(item.sex==args){
                    arr.push(item);
                }
            });
            return arr;
        }
    },
    data(){
        return{
            sex:'男',
            stu:[
                {id:1,name:'小花',sex:'女'},
                {id:2,name:'小王',sex:'男'},
                {id:3,name:'小小',sex:'女'},
                {id:4,name:'小黑',sex:'男'},
                {id:5,name:'小红',sex:'女'},
            ]
        }
    }
}
</script>

Vue2.0——过滤器
Vue2.0——过滤器

二.全局过滤器

main.js 中注册:

//注册全局过滤器
Vue.filter('toMoney',(value)=>{
  return value.toLocaleString();
})
    <div>{{money|toMoney}}</div>

    data(){
        return{
            money:95273124.95,
        }
    }
}

Vue2.0——过滤器

三、v-for 变相使用过滤器

v-for 循环绑定数据不能使用过滤器
可以变相使用 computed

<template>
<div id="index">
     <input type="text" v-model="sex">
     {{stu|selecSex(sex)}}
     
      <ul>
          <li v-for="(item,index) in checkSex" :key="index">
              <span>{{item.name}}</span>
          </li>
      </ul>
</div>
</template>
<script>
export default{
    name:"index",
    filters:{
        selecSex(value,args){
            //性别过滤器
            let arr=[];
            value.map((item)=>{
                if(item.sex==args){
                    arr.push(item);
                }
            });
            return arr;
        }
    },
    data(){
        return{
            sex:'男',
            stu:[
                {id:1,name:'小花',sex:'女'},
                {id:2,name:'小王',sex:'男'},
                {id:3,name:'小小',sex:'女'},
                {id:4,name:'小黑',sex:'男'},
                {id:5,name:'小红',sex:'女'},
            ],
        }
    },
    computed:{
        checkSex(){
            //变相模拟v-for上的过滤器
            let arr=[];
            this.stu.map((item)=>{
                if(item.sex==this.sex){
                    arr.push(item);
                }
            })
            return arr;
        }
    }
}
</script>
<style scoped>
</style>

Vue2.0——过滤器

四、串联式过滤器

串联式的过滤器
|** |**

上一篇:case when else end使用


下一篇:JSON 通过强类型或者匿名对象 序列化和反序列化 对象和集合