我正在查看这个react / flux示例,这家伙正在一个文件中创建一个调度程序实例,如下所示:
// 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 :(得分:1)
一旦Webpack模块系统解析了依赖关系,即一旦"导出"对模块进行评估,它们被缓存。无论有多少模块" import"那些依赖。
意思是这段代码:
export default new Dispatcher;
...仅在整个程序的生命周期中进行一次评估。
Webpack正是Node.js本身所做的。模块只评估一次。