0四、Vue.js---自定義過濾器

    自定義過濾器的關鍵字是 filterjavascript

    官網描述:Vue.js 容許你自定義過濾器,可被用於一些常見的文本格式化。過濾器能夠用在兩個地方:雙花括號插值和 v-bind 表達式 (後者從 2.1.0+ 開始支持)。過濾器應該被添加在 JavaScript 表達式的尾部,由「管道」符號指示:html

<!-- 在雙花括號中 -->

{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->

<div v-bind:id="rawId | formatId"></div>

    官網中提到的 管道 的關鍵字是「|」,其格式是:{{ data | fun }}。java

    自定義過濾器的做用:在數據顯示以前,對數據進行處理包裝。過濾器也分爲全局過濾器(filter)和局部過濾器(filters)。具體用法見代碼及註釋部分:api

js代碼部分:app

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代碼部分:code

<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>

 

至此,完畢。感謝您的閱讀。orm

比你牛逼的人還在努力,咱們有什麼理由選擇安逸。htm

相關文章
相關標籤/搜索