Vue.js 過濾器的基本使用(filter)
vue中的過濾器分為兩種:局部過濾器和全局過濾器
1、定義無參全局過濾器
Vue.filter('msgFormat', function(msg) { // msg 為固定的參數 即是你需要過濾的數據
return msg.replace(/單純/g, 'xxx')
})
完整示例
<div id="app"> <p>{{ msg | msgFormat}}</p> </div> <script> // 定義一個 Vue 全局的過濾器,名字叫做 msgFormat Vue.filter('msgFormat', function(msg) { // 字符串的 replace 方法,第一個參數,除了可寫一個 字符串之外,還可以定義一個正則 return msg.replace(/單純/g, 'xx') }) </script>
2、定義有參全局過濾器
<div id="app"> <p>{{ msg | msgFormat('瘋狂','--')}}</p> </div> <script> // 定義一個 Vue 全局的過濾器,名字叫做 msgFormat Vue.filter('msgFormat', function(msg, arg, arg2) { // 字符串的 replace 方法,第一個參數,除了可寫一個 字符串之外,還可以定義一個正則 return msg.replace(/單純/g, arg+arg2) }) </script>
3、局部過濾器
局部過濾器的有參和無參的定義和使用方法與全局的過濾器一樣。唯一的區別在於局部過濾器是定義在vue的實例中。其作用的區域也是vue實例【#app】控制的區域
// 創建 Vue 實例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {
msg: '曾經,我也是一個單純的少年,單純的我,傻傻的問,誰是世界上最單純的男人'
},
methods: {},
//定義私用局部過濾器。只能在當前 vue 對象中使用
filters: {
dataFormat(msg) {
return msg+'xxxxx';
}
}
});
注意:
1、 當有局部和全局兩個名稱相同的過濾器時候,會以就近原則進行調用,即:局部過濾器優先於全局過濾器被調用!
2、 一個表達式可以使用多個過濾器。過濾器之間需要用管道符“|”隔開。其執行順序從左往右
3、關注公眾號 資源自由分享 回復 vue 領取視頻教程