Vue2 过滤器的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

一、什么是过滤器?

二、过滤器的使用特点

 1.全局过滤器

2.局部过滤器


一、什么是过滤器?

过滤器分为全局过滤器和局部过滤器,是对要显示的数据进行特定格式化后再显示

二、过滤器的使用特点

  1. vue过滤器通常是用来处理数据的 必须有return值
  2. 过滤器只能使用在双大括号中 并且 使用 | 分割 | 前 为要处理的数据 |后 为过滤器名称
  3. 在使用过滤器函数时,若需要给过滤器函数传参 则要加小括号,若不需要传参 小括号可加可不加
  4. 当全局过滤器和局部过滤器名称相同时,vue会以就近原则进行调用,也就是说局部过滤器优先于全局过滤器
  5. 过滤器可以接收额外参数、多个过滤器也可以串联
  6. 并没有改变原本的数据, 是产生新的对应的数据

 1.全局过滤器 

全局过滤器可在任意一个vue实例中使用

使用  {{ 要处理的数据 | 过滤器名称 }} 或  v-bind:属性 = "要处理的数据 | 过滤器名"
注册  Vue.filter("过滤器名称",function(){ 
      })

代码如下

<body>
    <div id="app">
        <h1>
            {{msg | help('天天向上','小明')}}
        </h1>
    </div>
    <div id="box">
        <h1>{{title | help("好好学习",'小红')}}</h1>
    </div>
</body>
<script src="../vue.js"></script>
<script>
    // 创建全局过滤器
    // 参数一:过滤器名称  参数二:回调函数(参数一:将要处理的数据  参数二:形参 可以有多个形参)
    Vue.filter("help", function (text, parms, name) { //????
        console.log(text);  //好好学习 天天向上  msg + help
        console.log(parms);// 天天向上 好好学习  title + help
        console.log(name);
        return text + parms + name
    })

    new Vue({
        el: "#app",
        data: {
            msg: "好好学习"
        }
    })
    new Vue({
        el: "#box",
        data: {
            title: "天天向上"
        }
    })
</script>

2.局部过滤器

局部过滤器只能在当前vue实例中使用

fliters属性用来存放 局部过滤器函数

局部过滤器函数 形参为处理的数据

使用  {{ 要处理的数据 | 过滤器名称 }} 或  v-bind:属性 = "要处理的数据 | 过滤器名"
注册  new Vue{
       filters:{
       过滤器名称(属性){

       }
     }
   } 

 代码如下

<body>
    <div id="app">
        <h1>{{msg | filterMsg}}</h1>
        <h2>{{age | filterAge("小米")}}</h2>
    </div>
</body>
<script src="../vue.js"></script>
<script>
    new Vue({
        el: "#app",
        data: {
            msg: "好好学习天天向上",
            age: 19
        },
        // fliters属性用来存放 局部过滤器函数
        filters: {
            // 局部过滤器函数  形参为处理的数据
            filterMsg(text) {
                // 将字符串分割成数组
                return text.split("").reverse().join("")
                // reverse() 将数组倒序排列
                // join("") 将数组拼接成字符串
            },
            filterAge(text, name) {
                if (text > 18) {
                    return name + "成年"
                } else {
                    return name + "未成年"
                }
            }
        }
    })
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值