您好我正在尝试使用go-lang后端构建Flux / React应用程序。我一直在按照我发现here的教程。但是我在建立商店时遇到了问题。在教程中,这样的东西用于为商店创建一个基础。
var ProductStore = _.extend({}, EventEmitter.prototype, {...});
我遇到的问题是我无法访问EventEmitter库,我理解它是一个Nodejs库?有没有我可以使用的替代方案?
答案 0 :(得分:8)
您可以在浏览器中使用NodeJS库!看看browserify。
首先是一些代码:
// index.js
var EventEmitter = require("events").EventEmitter;
var ProductStore = function() {};
ProductStore.prototype = new EventEmitter;
然后你运行browserify:
browserify index.js > bundle.js
同样值得一看的是WebPack,它做同样的事情。 (但有一些额外的功能)
答案 1 :(得分:2)
好吧,如果你正在使用Facebook(https://github.com/facebook/flux)给出的flux实现,你实际上可以扩展他们的FluxStore类,这是在eventEmitter中构建的。
唯一要做的就是你必须使用es6类(并使用babel转换为es5)。
关于它的好处是您不必实施addListener
removeListener
和emitChange
方法,而且非常DRY:)
使用此解决方案,您的商店最终会看起来像这样:
var FluxStore = require("flux/utils").Store,
thing;
class ThingStore extends FluxStore {
getThing() {
return thing;
}
__onDispatch(payload) {
//your code
}
}