私はwebpack + vue-loaderを使ってvuejs appを作成しています。私はコンポーネントのために複数の.vue
ファイルを持っています。私はこのような何か書くとき:インポートはインポートされたライブラリの新しいコピーを作成しますか?
import _ from 'lodash'
ComponentA.vue
とComponentB.vue
のscript
一部内部を、これはlodash 2つの別々のコピーを作成しないか、それは単に参照をインポートしていますか?
私はwebpack + vue-loaderを使ってvuejs appを作成しています。私はコンポーネントのために複数の.vue
ファイルを持っています。私はこのような何か書くとき:インポートはインポートされたライブラリの新しいコピーを作成しますか?
import _ from 'lodash'
ComponentA.vue
とComponentB.vue
のscript
一部内部を、これはlodash 2つの別々のコピーを作成しないか、それは単に参照をインポートしていますか?
ES6モジュールまたはES6モジュールの一部をインポートすると、バインドが生成されます。
CommonJSモジュールは値をエクスポートしますが、ES6モジュールは不変のバインディングをエクスポートします。このブログ記事はその意味を説明しています。
[出典:ES6 Module Exports]
だから、答えはノーである、それは輸出のコピーを作成しません。モジュールは一度初期化され、各インポートは同じ値への参照を受け取ります。
誤解を防ぐため、 'require()'を使っても重複はありません。同じモジュールの後続の 'require 'も同じ値への参照に置き換えられます –
識別子 'lodash'があなたが使用する両方の場所から同じモジュールを指している場合、そのモジュールは一度だけインスタンス化されます。 – Bergi