一.全局過濾器:
-
src目錄下新建filters目錄,filters目錄里新建index.js文件
//index.js export function gettType(typeId) { switch (typeId) { case 1: return "智能安防" break; case 2: return "智能家電" break; default: return "未知設(shè)備" } }
根據(jù)傳入的參數(shù)進(jìn)行處理等孵,使用return返回處理后的數(shù)據(jù)
-
main.js里注冊filter
import * as filters from './filters' // 全局過濾器 // 全局注冊過濾器 Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]) })
-
在組件中使用(message就是需要過濾器處理的數(shù)據(jù))
<!-- 在雙花括號中 --> {{ message | capitalize }} <!-- 在 `v-bind` 中 --> <div v-bind:id="rawId | formatId"></div>
二.組件過濾器(局部):
filters:{
componentFilter:function(value){
return value + "!!!"
}
},
上面有種寫法有個(gè)需要注意的問題:全局注冊時(shí)是filter窘游,沒有s的语婴。而組件過濾器是filters榜田,是有s的填大,這要注意了首有,雖然你寫的時(shí)候沒有s不報(bào)錯燕垃,但是過濾器是沒有效果的
三.過濾器的其它使用方法
-
過濾器可以串聯(lián):
{{ message | filterA | filterB }}
在這個(gè)例子中枢劝,filterA 被定義為接收單個(gè)參數(shù)的過濾器函數(shù),表達(dá)式 message 的值將作為參數(shù)傳入到函數(shù)中卜壕。然后繼續(xù)調(diào)用同樣被定義為接收單個(gè)參數(shù)的過濾器函數(shù) filterB您旁,將 filterA 的結(jié)果傳遞到 filterB 中。
-
過濾器是 JavaScript 函數(shù)轴捎,因此可以接收參數(shù)
{{ message | filterA('arg1', arg2) }}
這里鹤盒,filterA 被定義為接收三個(gè)參數(shù)的過濾器函數(shù)。其中 message 的值作為第一個(gè)參數(shù)侦副,普通字符串 'arg1' 作為第二個(gè)參數(shù)侦锯,表達(dá)式 arg2 的值作為第三個(gè)參數(shù)。
-
'a'和'b'分別作為參數(shù)傳給filterB
{{ 'a','b' | filterB }}