vue 過濾器基本用法以及封裝過濾器

vue 過濾器基本用法

理解:不改變data的數據格式,在界面顯示處理後的數據格式

比如:對數組中的日期進行截取

整體代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <table >
        <tr v-for="item in list">
            <td>{{item.name | filter}}</td>
        </tr>
    </table>
</div>
<script>
    var vm =  new Vue({
        el: '#app',
        data: {
            list:[{'name':'2019-02-08TT00:00'},
                {'name':'2019-02-09TT01:00'},
                {'name':'2019-02-10TT02:00'},
                {'name':'2019-02-11TT03:00'}
            ]
        },
        filters:{
            filter(value){
                return value.match(/(\S*)TT/)[1]
            }
        }
    })
</script>
</body>
</html>

封裝過濾器filter如下:

在vue-cli腳手架裏面的src文件下面的components中創建一個filter.js文件:
然後在filter裏面寫入過濾器方法:

//過濾器
function formatStata(status) {
  const statusMap = {
    1: '一般級',
    2: '較重要級',
    3: '重要級',
    4: '關鍵級',
  };
  return statusMap[status]
}
function statusColor(status){
  const statusMap = {
    1: '#07B3A1',
    2: '#FFB902',
    3: '#F4823F',
    4: '#F43F3F',
  };
  return 'background: '+statusMap[status]
}
function  statusColors(status){
  const statusMaps = {
    '一般級': '#07B3A1',
    "較重要級": '#FFB902',
    "重要級": '#F4823F',
    "關鍵級": '#F43F3F',
  };
  return 'background: '+statusMaps[status]
}



export { formatStata, statusColor ,statusColors };

在main.js文件中:

// 全局註冊過濾器
import * as filters from './components/filter.js';
  // console.log(filters[key]);
Object.keys(filters).forEach((key) => {
  Vue.filter(key, filters[key]);
});

然後就可以在全局使用過濾器了:

{{scope.row.fileSensitiveLevel | formatStata}}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章