penapis


Penapis boleh digunakan di dua tempat: interpolasi pendakap berganda dan ungkapan v-bind (yang terakhir disokong bermula dari 2.1.0+). Penapis hendaklah ditambahkan pada penghujung ungkapan JavaScript, yang ditunjukkan oleh simbol "paip": v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

<!-- 在双花括号中 -->
{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>

你可以在一个组件的选项中定义本地的过滤器:

filters: {
  capitalize: function (value) {
    if (!value) return ''
    value = value.toString()
    return value.charAt(0).toUpperCase() + value.slice(1)
  }
}

或者在创建 Vue 实例之前全局定义过滤器:

Vue.filter('capitalize', function (value) {
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})
new Vue({
  // ...
})

当全局过滤器和局部过滤器重名时,会采用局部过滤器。

下面这个例子用到了 capitalize 过滤器:

2.gif

过滤器函数总接收表达式的值 (之前的操作链的结果) 作为第一个参数。在上述例子中,capitalize 过滤器函数将会收到 message 的值作为第一个参数。

过滤器可以串联:

{{ message | filterA | filterB }}

在这个例子中,filterA 被定义为接收单个参数的过滤器函数,表达式 message 的值将作为参数传入到函数中。然后继续调用同样被定义为接收单个参数的过滤器函数 filterB,将 filterA 的结果传递到 filterB 中。

过滤器是 JavaScript 函数,因此可以接收参数:

{{ message | filterA('arg1', arg2) }}

这里,filterA 被定义为接收三个参数的过滤器函数。其中 message 的值作为第一个参数,普通字符串 'arg1' 作为第二个参数,表达式 arg2rrreee

Anda boleh menentukan penapis secara setempat dalam pilihan komponen:

rrreee
atau tentukan penapis secara global sebelum membuat contoh Vue:

rrreee

Apabila penapis global dan penapis tempatan mempunyai nama yang sama, penapis tempatan akan digunakan. 🎜🎜Contoh berikut menggunakan penapis capitalize: 🎜🎜2.gif🎜🎜Fungsi penapis sentiasa menerima nilai ungkapan (hasil daripada rantaian operasi sebelumnya) sebagai parameter pertama. Dalam contoh di atas, fungsi penapis capitalize akan menerima nilai message sebagai parameter pertama. 🎜🎜Penapis boleh digabungkan: 🎜rrreee🎜Dalam contoh ini, filterA ditakrifkan sebagai fungsi penapis yang menerima satu parameter, dan nilai ungkapan message akan menjadi diluluskan sebagai parameter ke dalam fungsi. Kemudian teruskan memanggil fungsi penapis filterB, yang juga ditakrifkan untuk menerima satu parameter, menghantar hasil filterA ke dalam filterB. 🎜🎜Penapis ialah fungsi JavaScript dan oleh itu boleh menerima parameter: 🎜rrreee🎜Di sini, penapisA ditakrifkan sebagai fungsi penapis yang menerima tiga parameter. Nilai message digunakan sebagai parameter pertama, rentetan biasa 'arg1' digunakan sebagai parameter kedua dan nilai ungkapan arg2 digunakan sebagai parameter kedua. 🎜🎜🎜🎜🎜 🎜