動的にデータを取得する Vue.js のツリーコンポーネント

ツリー表示する方法を調べてたら Vue.js の公式サイトにいい感じのサンプルがありました。このサンプルではコンポーネント再帰することでツリーを実現しています。とても学びがありますね。

ただ、今回はツリーを開くタイミングで動的にデータを取得するようにしたかったのですが、このサンプルは初期表示の時点でツリーのデータをすべて持っています。

というわけで、サンプルをカスタマイズしてみました。

github.com

構成は公式サイトのサンプルとほぼ同じですが、今回必要のなかった箇所は移植していません。

ツリーを開くときに呼ばれる toggle メソッド内でツリーの子要素を取得します。また、2回目以降ツリーを開くたびにリクエストが飛ばないように m-loaded 属性で制御しています。

あと、ローカルで動作確認するために JSON Server を使っています。

> npm install -g json-server
> json-server --watch db/db.json