首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在es6模块之间共享数据

在es6模块之间共享数据
EN

Stack Overflow用户
提问于 2015-06-21 00:57:09
回答 2查看 2.7K关注 0票数 2

有没有一个地方可以让es6模块(jspm/system.js和babel)彼此(而不是window)共享数据?

我有一个http查询字符串的解析器模块。我在启动时使用它来选择要运行的程序(一个html文件运行多个程序)。我还在选定的程序中使用它来获取运行它的标志值。例如:三角形或正方形,它们的数量,世界坐标系...等。

如何在启动模块和需要标志数据的各个模块之间共享查询字符串解析的结果?模块是否有一个特殊的“导出”数据空间?

我可以重新解析,没什么大不了的,但在未来,我可能想要存储长时间计算的结果,以便它们可以共享。我也可以在"init“过程中将数据传递给模块,但这可能会很尴尬。

EN

回答 2

Stack Overflow用户

发布于 2016-01-27 04:19:01

如果您正在考虑将数据从一个模块传递到全局变量,并让另一个模块从其中读取数据,下面是一个简单的数据存储模块的示例。

在SimpleStore.js中

代码语言:javascript
复制
var _store = {};

class SimpleStore {
   constructor(props) {
      if (props) { 
         _store = props;
      }
    }
    getContent() {
        return _store;
    }
}
export default SimpleStore

在模块A中,我们将存储一些

代码语言:javascript
复制
import SimpleStore from './SimpleStore'

class A {
    constructor(props) {
        new SimpleStore({foo: 'bar'});
    }
}

在模块B中,我们将获得该内容

代码语言:javascript
复制
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 FluxRedux一起使用的存储模块

票数 5
EN

Stack Overflow用户

发布于 2015-06-21 01:02:34

你应该做一个第三个"config“模块,比如"C",这样"A”和"B“都依赖于它。此模块加载/缓存/向其他模块公开配置数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30956636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档