04Vue.js---自定义过滤器

Posted web前端开发大全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04Vue.js---自定义过滤器相关的知识,希望对你有一定的参考价值。

  

    自定义过滤器的关键字是 filter。

    官网描述:Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 javascript 表达式的尾部,由“管道”符号指示:

<!-- 在双花括号中 -->{{ message | capitalize }}<!-- 在 `v-bind` 中 --><div v-bind:id="rawId | formatId"></div>

    官网中提到的 管道 的关键字是“|”,其格式是:{{ data | fun }}。

    自定义过滤器的作用:在数据显示之前,对数据进行处理包装。过滤器也分为全局过滤器(filter)和局部过滤器(filters)。具体用法见代码及注释部分:

js代码部分:

window.onload = function (){  // 定义全局过滤器
  Vue.filter("test",function(data){    // 形参data的实参是管道{{ data | fun }}中 data
    return data >=10;
  });  new Vue({
    el:"#app",
    data:{
      num:0,
      today:new Date()
    },    // 定义局部过滤器
    filters:{      // 定义局部过滤器,将以为数字前补0,其他的原样输出
      addZero:function(data){        return data>=10 ? data : "0"+data;
      },      // 过滤器带多个参数
      dateFormat:function(data,arg1,arg2){        // 可以打印 arg1/arg2 看看结果
        // console.log(arg1);
        // console.log(arg2);
        let year = data.getFullYear();        let m = data.getMonth()+1;        let day = data.getDate();        return year+arg1+m+arg1+day;
      }
    }
  });
}

html代码部分:

<body>  <div id="app">    <input type="text" v-model="num">    <div>{{ num }}</div>    <!-- 使用管道 {{ data | fun }} -->    <p>通过全局过滤器 test 判断 num 是否 >=10</p>    <div>{{ num | test }}</div>    <hr/>    <p>通过局部过滤器 addZero,将以为数字前补0,其他的原样输出</p>    <div>{{ num | addZero }}</div>    <hr/>    <p>        管道前的参数永远都是过滤器方法的第一个参数,<br/>        过滤器方法括号中所定义的参数,以第二位参数开始向后顺序排列    </p>    <div>{{ today | date-format("-","参数二") }}</div>  </div></body>

 

至此,完毕。感谢您的阅读。

 

链接:https://my.oschina.net/u/3563169/blog/1577690



以上是关于04Vue.js---自定义过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 自定义过滤器

自定义 v-repeat 过滤器 Vue.js

Vue.js学习 Item14 – 过滤器与自定义过滤器

为啥我在 vue.js 中的自定义搜索过滤器不起作用?

vue.js之过滤器,自定义指令,自定义键盘信息以及监听数据变化

javascript Vue.js过滤将DateTime字符串格式化为可读/自定义格式