【问题标题】:Alternative to Reflux for client and server (individual sessions)客户端和服务器的 Reflux 替代方案(单独会话)
【发布时间】:2015-06-18 08:56:03
【问题描述】:
我一直在将RefluxJS 用于 Web 应用程序,并且效果很好。问题出在服务器端(节点/快递)。它使用单数,我还没有找到任何方法来使用它而不在会话之间混合数据。当一个用户在存储中存储一些数据时,当另一个用户(不同的会话)稍后向后端发出请求时,该数据仍然存在。即使我在请求结束时删除了数据,在处理多个请求时也可能会出现混淆。
那么,有没有一个很好的 Reflux 替代品在客户端和服务器上都运行良好?我正在寻找 Reflux 中存在的简化,同时被解耦,而不是在整个应用程序周围和整个应用程序中构建通量结构(就像 Fluxible 所做的那样)。
有什么建议吗?
【问题讨论】:
标签:
javascript
reactjs
refluxjs
【解决方案1】:
我使用 Backbone 进行数据管理解决了同样的问题,我最终得到了这样的结果:
var Collection = Backbone.Collection.extend({})
var exported
if ( isNode ) {
module.exports.init = function(session) {
session.collection = new Collection()
exported = session.collection
}
} else {
exported = new Collection()
}
module.exports.collection = exported
然后从你的 NodeJs f.ex 中调用init(session):
var data = require('data')
[...]
index: function(req, res, next) {
// attach backbone collection to the session
data.init(req.session)
// now you can use data.collection as normal
}
在客户端上,您可以正常要求并使用它。到目前为止,它对我们来说效果出奇的好,但我也愿意接受其他建议。
我们仅将 Backbone 用于数据管理,并使用主干事件实现类似通量的架构。
Facebook Relay 看起来也很有希望,但尚未确定发布日期:https://facebook.github.io/react/blog/2015/02/20/introducing-relay-and-graphql.html