1. 程式人生 > 實用技巧 >Vue.js中過濾器(filter)的使用

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、 一個表示式可以使用多個過濾器。過濾器之間需要用管道符“|”隔開。其執行順序從左往右