由于我使用了 reqwest 等客户端库,我无法使用 React 的服务器端渲染。但是,我想将一些数据传递给我的反应组件。有没有办法做到这一点?
问问题
708 次
1 回答
2
最简单的方法是使用api-client.js
and api.js
。在您的 browserify/webpack 配置中,您设置了客户端版本。对于 browserify,把它放在你的 package.json 中(随意编辑和添加 webpack)。
"browser": {
"./path/to/api.js": "path/to/api-client.js"
}
我认为第二种选择更好,但更难实施。您创建 API 的抽象表示,其工作方式如下:
var comments = require('./api').get('comments');
comments.getById('7').then(function(comment){ ... });
comments.create({...}).then(...);
在服务器上 api.js 只需调用正确的函数,这些函数都会返回 Promise。在客户端,它返回一个承诺,向服务器发出 ajax 请求,服务器调用这些函数,然后发回响应,API 客户端解析/拒绝它的承诺。
这允许 api 自动工作,并允许您执行其他操作,例如跟踪未履行的承诺,以及在客户端上预填充状态等(例如,请参阅 react-async)。
于 2014-11-24T20:53:49.350 回答