【发布时间】:2018-06-27 08:20:09
【问题描述】:
在我的 react 应用程序中,我想在 2 个具有不同设置的组件中使用库 (money.js)。
这个库:
http://openexchangerates.github.io/money.js/
http://openexchangerates.github.io/money.js/money.js
我检查了 javascript 正在使用引用,因此这两个组件实际上引用了相同的东西。
Does import create a new copy of imported library?
ES6 variable import by reference or copy
是否可以在不更改源代码的情况下(理想情况下),我可以执行以下操作
// a.js
import fx from 'money'
fx.rates={USD:1, EUR: 2.001}
// b.js
import fx from 'money'
fx.rates={USD:1, EUR: 2.002}
在我的情况下,我注意到在 b.js 中更改费率也会影响 a.js。
【问题讨论】:
-
可以在这里找到对 JS 模块生态系统的一个很好的解释 - medium.freecodecamp.org/…。由于 ES6 模块是实时且只读的副本,因此您必须在另一个 jS 对象(如果可能的话,服务)中维护您的“速率”或任何特定于模块的配置。只需在这样创建的服务中使用我为您的特定库提供的实用程序即可。希望对您有所帮助!
-
@AmanshuKataria - 不,模块比简单对象复杂得多。
-
@ShobhitChittora - ES2015 模块不是只读的。它们是共享的。
标签: javascript reactjs webpack ecmascript-6