我正在查看这个 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 将所有导入合并到一个文件中。但是,如果我想将我的文件分开怎么办?这是否仍然有效,或者我是否需要执行其他操作才能从多个文件访问同一个调度程序?
最佳答案
一旦 Webpack 模块系统解决了依赖关系,也就是说,一旦评估了模块的“导出”,它们就会被缓存。无论有多少模块“导入”这些依赖项。
意思是这段代码:
export default new Dispatcher;
...在程序的整个生命周期中只被评估一次。
Webpack 的功能与 Node.js 本身的功能完全相同。模块仅被评估一次。
关于javascript - 使用全局实例导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41337312/