2017-01-20 8 views
1

私は私のdevの環境としてVUE-CLI +のWebPACKを使用していると私は唯一の必要なコンポーネントをインポートするには、開発/生産の利点がありますか、それは違いはありませんmain.js(VueJS用)のコンポーネントのインポートの長所と短所は何ですか?

Vue.component('<name>',require('./components/<name>.vue'));として main.jsに宣言/ほとんどのコンポーネントが含まれています私が今やっているようにmain.jsファイルでそれを行うには?

答えて

3

私はグローバルに登録することの主な利点は、あなたのコンポーネントは、すべてのコンポーネントに登録する必要なく、常に利用できるということです。独自のカスタムコンポーネントを登録していて、名前の衝突がないことがわかっている場合は、これは問題ありません。実際の問題は、複数のプロジェクトで再利用できるコンポーネントを記述している場合です。

たとえば、複数のプロジェクトで使用する予定のvueにスター評価アプリを作成し、npmで公開しているので、誰でもプロジェクトでコンポーネントを使用できます。メインコンポーネント自体には、別のコンポーネント(star)が必要です。 starをグローバルに登録すると、私の星評価コンポーネントを含むプロジェクトには、アプリケーション全体で利用できる「スター」という名前のグローバルコンポーネントが追加されます。ただし、starという独自のコンポーネントを既に登録していると、 、一つの成分を意味する他に上書きされます:あなたがそれらを必要としてあなたがコンポーネントを登録すると、登録コンポーネントは、独自のスコープに閉じ込められているので、

http://jsfiddle.net/krb23sq3/

、あなたは任意の名前の衝突を避けます。次の例では、両方の成分は、「メッセージ」が登録(両方が同じテンプレートを使用している)という名前のコンポーネントを有するが、それぞれは異なる「メッセージ」コンポーネントを指すので、出力の異なるメッセージ:

http://jsfiddle.net/24hwu7at/

+0

をありがとう、それはかなり明確な説明です。任意のサイズ/メモリ/パフォーマンスの影響を認識していますか?グローバルに登録するかローカルに登録するか。 – andrei

+0

私はJavaScriptエンジンの内部動作について専門家はいませんが、パフォーマンスの低下はごくわずかです。 –

関連する問題