Vue.js 独自のfilterを実装する
Vue.js
で独自のfilter
を実装して、各コンポーネントで使用できるようにします。
コンポーネント内で定義することもできますが、今回はグローバルファンクションとして作成して、全てのコンポーネントで使用できるようにします。
開発環境やフォルダ構成はwebpack モジュールのパスを絶対パスで指定する方法で扱ったものと同様とします。
filterの実装
filters.js
のファイルを作成します。ファイル名は自由に変更しても問題ありません。
filters.js
export 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.js
import '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>