0

在我最近的应用程序中,我一直在根据请求在服务器上使用 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生命周期方法中)。

我的问题 -是否有可能(根据您的经验)在容器组件内部有一些方法将在服务器上调用以在其中调用异步操作?

4

2 回答 2

0

查看react-nexus

即使它仍在进行中,我认为这会“回答”你的问题

我们希望继续从组件中获取数据,但这些数据也可能呈现在服务器端——这就是“同构”真正意味着要做出反应的地方

太糟糕了,这个同构词在实际解决这个问题之前就被炒作了

于 2015-07-13T22:05:19.690 回答
0

是的,我一直在使用同构 API,它可以在基于反应的大型同构 SPA 中从服务器和客户端调用。

这个库使您可以以同构方式构建您的 API,并在客户端和服务器中重新使用它,而不会膨胀或破坏捆绑包。这是我们目前在大型单页应用程序中使用的。

它叫做异吗啡,你可以在这里找到它:https ://github.com/d-oliveros/isomorphine 。

免责声明:我是这个库的作者。

于 2015-07-28T16:19:53.140 回答