Vue.js 独自のfilterを実装する
Vue.jsで独自のfilterを実装して、各コンポーネントで使用できるようにします。
コンポーネント内で定義することもできますが、今回はグローバルファンクションとして作成して、全てのコンポーネントで使用できるようにします。
開発環境やフォルダ構成はwebpack モジュールのパスを絶対パスで指定する方法で扱ったものと同様とします。
filterの実装
filters.jsのファイルを作成します。ファイル名は自由に変更しても問題ありません。
filters.jsexport function filterA (value) {
return value; // 独自のfilter処理
}
export function filterB (value) {
return value; // 独自のfilter処理
}
export function filterC (value) {
return value; // 独自のfilter処理
}エントリーポイントの修正
エントリーポイントでfilterを読み込みます。
作成したfunctionをforEachで1つずつ登録していきます。
webpack モジュールのパスを絶対パスで指定する方法で紹介した方法でImportは絶対パスで指定しています。
app.jsimport 'less/app.less';
import Vue from 'vue';
import store from 'js/store';
import http from 'js/http';
import router from 'js/router';
import App from 'js/components/App.vue';
import * as filters from 'js/filters';
Vue.use(http, { store });
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key]);
});
new Vue({
el: '#app',
router,
store,
render: h => h(App)
});動作確認
以下のようにコンポーネントでfilterが使用できるようになります。
<template>
{{ foo | filterA }}
</template>