在我最近的应用程序中,我一直在每个请求的服务器上使用Flux (与flummox - http://acdlite.github.io/flummox)进行同构呈现。一般情况如下:
app.use(createFluxPerRequest);
app.get('/some-route', (req, res) => {
api.getData(data => {
req.flux.getActions('items').receiveItems(data);
next();
});
});
app.use((req, res) => {
ReactRouter.run(routes, req.url, Handler => {
res.render('base', {
snapshot: new Buffer(req.flux.serialize(), 'utf-8').toString('base64'),
appString: React.renderToString(
React.createElement(Handler, { flux: req.flux })
)
});
});
});正如您所看到的,我一直通过api服务接收数据,但是,一些React组件自己在客户端上发出请求。
他们通过调用容器组件中的flux.getActions('items').getSomeDataAsync操作(在componentDidMount生命周期方法中)来实现这一点。
我的问题-是否可能(根据您的经验)在容器组件中有一些方法,在服务器上调用这些方法来调用它内部的异步操作?
发布于 2015-07-13 22:05:19
查看反应-联系
尽管这项工作仍在进行中,但我认为这将“回答”你的问题。
我们希望继续从组件中获取数据,但是也有可能将这些数据呈现在服务器端--这就是“同构”的真正意义所在。
可惜这个同构词在实际解决这个问题之前就被炒作了。
发布于 2015-07-28 16:19:53
是的,我一直在使用一个可以从服务器和客户端调用的同构API,这个API可以在一个大的基于反应的同构SPA中调用。
这个库使您能够以同构的方式构建API,并在客户机和服务器中重用它,而不会膨胀或破坏包。这就是我们目前在一个大的单页应用程序中使用的内容。
它叫做同构,你可以在这里找到它:https://github.com/d-oliveros/isomorphine。
免责声明:我是这个图书馆的作者。
https://stackoverflow.com/questions/30893564
复制相似问题