2016-06-22 9 views
2

私はwebpack + vue-loaderを使ってvuejs appを作成しています。私はコンポーネントのために複数の.vueファイルを持っています。私はこのような何か書くとき:インポートはインポートされたライブラリの新しいコピーを作成しますか?

import _ from 'lodash'

ComponentA.vueComponentB.vuescript一部内部を、これはlodash 2つの別々のコピーを作成しないか、それは単に参照をインポートしていますか?

+1

識別子 'lodash'があなたが使用する両方の場所から同じモジュールを指している場合、そのモジュールは一度だけインスタンス化されます。 – Bergi

答えて

3

ES6モジュールまたはES6モジュールの一部をインポートすると、バインドが生成されます。

CommonJSモジュールは値をエクスポートしますが、ES6モジュールは不変のバインディングをエクスポートします。このブログ記事はその意味を説明しています。

[出典:ES6 Module Exports]

だから、答えはノーである、それは輸出のコピーを作成しません。モジュールは一度初期化され、各インポートは同じ値への参照を受け取ります。

+1

誤解を防ぐため、 'require()'を使っても重複はありません。同じモジュールの後続の 'require 'も同じ値への参照に置き換えられます –

関連する問題