# Filters
###### tags: `Vue` `filters`
Filters是Vue提供一個簡易處理文字格式的方法。
e.g.轉換時間格式、大小寫、貨幣、千位加逗號...等等
### 局部註冊
直接寫在script中
**Example.vue**
```javascript=
<template>
<p>{{ comment }}</p>
</template>
<script>
export default {
data() {
return {
comment: 'no one cares'
}
},
filters: {
shout(comment) {
return comment.toUpperCase()
}
}
}
</script>
```
在要格式化的文字後面加上pipes符號:|,再寫入filter的function
```htmlmixed=
<template>
<p>{{ comment | capitalize }}</p>
</template>
```
### Chaining Filters
也可以串接多個filter
```javascript=
<script>
export default {
data() {
return {
comment: 'no one cares'
}
},
filters: {
shout(comment) {
return comment.toUpperCase()
},
exclaim(comment) {
return comment + '!!!'
}
}
}
</script>
```
直接用|串連起來,注意,越左邊的越先被執行
```htmlmixed=
<template>
<p>{{ comment | shout | exclaim }}</p>
</template>
```
### Additional Arguments
可以傳入參數
reply中傳入name這個參數
```javascript=
<script>
export default {
data() {
return {
comment: 'no one cares'
}
},
filters: {
shout(comment) {
return comment.toUpperCase()
},
exclaim(comment) {
return comment + '!!!'
},
reply(comment, name) {
return comment + ', ' + name
}
}
}
</script>
```
在template中使用
```htmlmixed=
<template>
<p>{{ comment | reply('bro') | shout | exclaim }}</p>
</template>
```
### 全域註冊
通常在src中建立filters file
建立date.js
**./src/filters/date.js**
```javascript=
export default value => {
const date = new Date(value)
return date.toLocaleString(['en-US'], {
month: 'short',
day: '2-digit',
year: 'numeric'
})
}
```
接著去main.js註冊
```javascript=
import DateFilter from './filters/date'
Vue.filter('date', DateFilter)
```
就可以在元件或是view裡,不需import直接使用了
```htmlmixed=
<span>{{ event.date | date }}</span>
```
---
refference:
https://vuejs.org/v2/guide/filters.html