Vueは正式な依存性注入メカニズムを提供しません。依存関係をどのようにインポートするかはあなた次第です。
ほとんどのVueコードサンプルは依存性注入を全く使用せず、import
とexport
でES6モジュールシステムを使用します。
リファクタリング時(頻繁に)コンポーネントのディレクトリ構造を変更すると、コンポーネント参照が失われ、パスを1つずつ修正する必要があります。それはいかに面倒です。
ディレクトリ構造を頻繁に変更しないでください。 Vueプロジェクトを正しく構成する方法の例については、Vue webpack templateを参照してください。
これは実際にあなたの質問に答えるものではありません。あなたはwebpack(または類似のもの)を使用していますか? webpackがコンフィグレーションプロパティーresolveを介してモジュールをどのように配置するかを正確に設定することができ、相対的なインポートパスを使用する必要はありません。
別の方法はregister each Vue component globallyです。インポートする必要はありません。
もう1つの方法は、各Vueコンポーネントを(どこにいても)インポートし、その1つのモジュールからすべてエクスポートするモジュールを作成することによってES6モジュールを悪用することです。今度は、インポートしたいそれぞれのモジュールの特定の場所を探し出す代わりに、その中央モジュールからインポートするだけです。
// components.js
import Button from 'path/to/button.vue';
import Alert from 'path/to/alert.vue';
export {
Button,
Alert,
};
// myform.js
import { Button } from 'path/to/components.js';
あなたがbutton.vue
の場所を変更する場合は、あなただけのcomponents.js
ファイル内からのインポートを更新する必要があります。
[動的コンポーネント](https://vuejs.org/v2/guide/components.html#Dynamic-Components) –
を使用することができます。2.2.0から[提供/挿入](https ://vuejs.org/v2/api/#provide-inject)構文ですが、高度な使用にのみ推奨されます。 – Bert