Vue的學習之路十二:過濾器

<body>
    <div id="app">
      <p>{{ msg | msgFormat('瘋狂', '123') | test }}</p>
    </div>

    <div id="app2">
      <p>{{ msg | msgFormat('瘋狂', '123') | test }}</p>
    </div>


    <script>
      // 定義一個 Vue 全局的過濾器,名字叫做 msgFormat
      // 全局過濾器,所有的Vue實例都能共享
      Vue.filter('msgFormat', function (msg, data, data2) {
        return msg.replace(/單純/g, data + data2)
      })

      Vue.filter('test', function(msg){
        return msg + "========="
      })

      var vm = new Vue({
        el: '#app',
        data: {
          msg: '曾經,我也是個單純的少年,單純的問誰是世界上最單純的男人',
        },
        methods: {},
      })

      // 如何自定義一個私有的過濾器
      var vm2 = new Vue({
        el: '#app2',
        data: {
          msg: '曾經,我也是個單純的少年,單純的問誰是世界上最單純的男人',
        },
        methods: {},
        filters: {
          // 定義私有過濾器,過濾器有兩個條件,【過濾器名稱和處理函數】
          // 過濾器調用的時候,採用的就是就近原則,如果私有過濾器和全局過濾器名稱一致,這時候優先調用私有過濾器
          msgFormat: function(msg){
            return msg.replace(/單純/g, '幼稚')
          }
        }
      })
    </script>
  </body>
  1. 全局過濾器語法:Vue.filter('過濾器的名稱', function(data){}),第一個參數永遠都是過濾器管道符前面傳遞過來的數據。
  2. 可以設置多個參數由前臺傳入,Vue.filter('msgFormat', function (msg, data, data2)
  3. 全局過濾器,所有的Vue實例都能共享
  4. 可以使用多個過濾器
  5. 在Vue實例中,使用filters屬性定義私有過濾器,定義私有過濾器有兩個條件,【過濾器名稱和處理函數】
  6. 過濾器調用的時候,採用的就是就近原則,如果私有過濾器和全局過濾器名稱一致,這時候優先調用私有過濾器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章