在我最近的应用程序中,我一直在根据请求在服务器上使用 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
生命周期方法中)。
我的问题 -是否有可能(根据您的经验)在容器组件内部有一些方法将在服务器上调用以在其中调用异步操作?