有没有一个地方可以让es6模块(jspm/system.js和babel)彼此(而不是window)共享数据?
我有一个http查询字符串的解析器模块。我在启动时使用它来选择要运行的程序(一个html文件运行多个程序)。我还在选定的程序中使用它来获取运行它的标志值。例如:三角形或正方形,它们的数量,世界坐标系...等。
如何在启动模块和需要标志数据的各个模块之间共享查询字符串解析的结果?模块是否有一个特殊的“导出”数据空间?
我可以重新解析,没什么大不了的,但在未来,我可能想要存储长时间计算的结果,以便它们可以共享。我也可以在"init“过程中将数据传递给模块,但这可能会很尴尬。
发布于 2016-01-27 04:19:01
如果您正在考虑将数据从一个模块传递到全局变量,并让另一个模块从其中读取数据,下面是一个简单的数据存储模块的示例。
在SimpleStore.js中
var _store = {};
class SimpleStore {
constructor(props) {
if (props) {
_store = props;
}
}
getContent() {
return _store;
}
}
export default SimpleStore
在模块A中,我们将存储一些
import SimpleStore from './SimpleStore'
class A {
constructor(props) {
new SimpleStore({foo: 'bar'});
}
}
在模块B中,我们将获得该内容
import SimpleStore from './SimpleStore'
class B {
constructor(props) {
var content = new SimpleStore().getContent();
}
}
请记住,在实例化SimpleStore ie时,可以很容易地更改_store
的内容。new SimpleStore('replace the original content')
这正是像IMMUTABLE.js这样的库可以派上用场的地方。另外,作为示例,请查看与React Flux和Redux一起使用的存储模块
发布于 2015-06-21 01:02:34
你应该做一个第三个"config“模块,比如"C",这样"A”和"B“都依赖于它。此模块加载/缓存/向其他模块公开配置数据。
https://stackoverflow.com/questions/30956636
复制相似问题