2016-12-26 4 views
1

私はこの反応/フラックスの例を見ていて、この男は、このような一つのファイルにディスパッチャインスタンスを作成しますインポートモジュール

// https://github.com/learncodeacademy/react-js-tutorials/blob/master/3-flux/src/js/dispatcher.js 
import { Dispatcher } from "flux"; 
export default new Dispatcher; 

そしてインポートすることで、複数の他のファイルにそれを使用してそれ。しかし、これは私を不快にさせる部分です。それは、まるで同じインスタンスのように、別々のファイルごとに使用します。

import dispatcher from "../dispatcher"; 
dispatcher.dispatch({type: "event"}); 

別のファイル:

import dispatcher from "../dispatcher"; 
dispatcher.register(...); 

を、彼は一つのファイルにすべての輸入を組み合わせることWebPACKのを使っているので、それは、彼のために働く理由は私には意味があります。しかし、私のファイルを別のものにしたいのであればどうしますか?これでも動作しますか、複数のファイルから同じディスパッチャにアクセスするには何か他の操作を行う必要がありますか?

+0

webpackは、依存関係グラフを作成してモジュール間に適切な関数スコープの境界を作成するのではなく、「ファイル」を1つ入れているわけではありません。同様に、すべての単一のコンポーネントに 'react 'から' React import 'を書くかもしれませんが、毎回Reactの新しいインスタンスを引っ張ってはいません。 – azium

+0

ページ・リフレッシュ間、または異なるアプリケーション間でディスパッチャの同じインスタンスを使用することを意味しますか? – azium

+0

@aziumああ、意味があります。リフレッシュやアプリケーション間ではありません。同じアプリ、同じページ – Entity

答えて

1

Webpackモジュールシステムが依存性を解決すると、つまり、モジュールの「エクスポート」が評価されると、キャッシュされます。どのように多くのモジュールがそれらの依存関係を「インポート」しても。

export default new Dispatcher; 

...唯一のプログラムのライフサイクルを通じて一度だけ評価されます。コードのこの作品は、その意味

Webpackは、Node.js自体が行うことをまったく行いません。モジュールは一度だけ評価されます。

関連する問題