フィルター


フィルターは、二重中括弧補間と v-bind (後者は 2.1.0 以降でサポートされています) の 2 つの場所で使用できます。フィルタは、「パイプ」記号で示される 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 の呼び出しを続けます。この関数も 1 つのパラメーターを受け取るように定義されており、filterA の結果を filterB に渡します。

フィルターは JavaScript 関数であるため、パラメーターを受け取ることができます。

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

ここでは、filterA は 3 つのパラメーターを受け取るフィルター関数として定義されています。このうち、message の値が最初のパラメータとして使用され、通常の文字列 'arg1' が 2 番目のパラメータとして使用され、式 arg2# の値が使用されます。 ## は 3 番目のパラメータとして使用されます。