根据我的理解,webpack(和其他类似的 bundler )确保如果应用程序的多个部分需要相同的模块:
- 该代码只会加载一次
- 每次需要同一个模块时,都会创建一个新实例,而不是共享同一个范围
首先,我的上述假设是否正确?如果是这样,创建同一模块的多个实例是否优化不好?
在我的示例中,我正在创建一个将使用 ThreeJS 的应用程序。这是一个相当大的图书馆。我的应用程序中的许多模块都需要这个库。
继续要求这样的图书馆是不是不好的做法?或者我应该将单个实例从一个模块传递到另一个模块,而不是要求多次?
如果这确实是一个问题,我很想知道是否有任何通用模式来处理这个问题。
最佳答案
这个假设:
Each time the same module is required, a new instance is created, rather than all sharing the same scope
错误的原因有两个:
- 是否创建实例,将取决于所需模块返回的内容(它可能不返回任何内容)。
- 即使模块初始化一个实例,也只会创建一个实例,因为模块中的代码只运行一次。
话虽如此,多次请求同一个模块应该不会对性能产生影响。
关于javascript - Webpack:重复模块加载效率低下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38168663/