4.Vue之自定義過濾器

介紹

類似于自定義指令,可以用全局方法 Vue.filter() 注冊一個自定義過濾器,它接收兩個參數:過濾器 ID 和過濾器函數。過濾器函數以值為參數,返回轉換后的值

正文

1.系統過濾器

json lowercase uppercase filterBy 注意點:在Vue2.0中已經將系統過濾器給移除了

 {{ msg | json  }}-json格式
 {{ msg | lowercase }} -小寫
 {{ msg | uppercase }}-大寫
 filterBy -管道  見前面品牌管理案例-過濾器

2.自定義過濾器

  • 私有過濾器 :定義在 VM中的filters對象中的所有過濾器都是私有過濾器
    私有過濾器的弊端是:在多個VM中不能共享,會造成代碼的冗余,將來維護成本高
<body>  
    <div id="app">
        {{ time | datefmt}}
    </div>
<script>
new Vue({
    el:'#app',
    data:{
        time:new Date()
    },
    filters:{
        //定義在 VM中的filters對象中的所有過濾器都是私有過濾器
        datefmt:function(input,str,s1){
            var date = new Date(input); 
            var year = date.getFullYear();
            var m = date.getMonth() + 1;
            var d = date.getDate();
            //輸出: yyyy-mm-dd
            var fmtStr = year+'-'+m +'-'+d;
            return fmtStr; //輸出結果
        }
    }
});
  • 全局過濾器
    <div id="app">
        {{ time | datefmt }}
    </div>
<script>
//1.0 定義全局過濾器
Vue.filter('datefmt',function(input){
    var date = new Date(input); 
    var year = date.getFullYear();
    var m = date.getMonth() + 1;
    var d = date.getDate();
    //輸出: yyyy-mm-dd
    var fmtStr = year+'-'+m +'-'+d;
    return fmtStr; //輸出結果
});
new Vue({
    el:'#app',
    data:{
        time:new Date()
    }   
});
它接收兩個參數:過濾器 ID 和過濾器函數
<!-- 'abc' => 'cba' -->
<span v-text="message | reverse"></span>
Vue.filter('reverse', function (value) {
  return value.split('').reverse().join('')
})
過濾器函數可以接收任意數量的參數:
參數要引號
<!-- 'hello' => 'before hello after' -->
<span v-text="message | wrap 'before' 'after'"></span>
Vue.filter('wrap', function (value, begin, end) {
  return begin + value + end
})

vue2.0詳細

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內容,還有我對于 Vue 1.0 印象不深的內容。關于...
    云之外閱讀 5,079評論 0 29
  • 下載安裝搭建環境 可以選npm安裝,或者簡單下載一個開發版的vue.js文件 瀏覽器打開加載有vue的文檔時,控制...
    冥冥2017閱讀 6,087評論 0 42
  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨立版本,Vue即被注冊為全局變量,可以在頁面使用了。 如果希望搭建...
    Awey閱讀 11,097評論 4 129
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,241評論 0 6