我在Node / Express中有一个小型webapp,它使用react-dom呈现初始HTML服务器端。然后在客户端填充页面,$.ajax
调用componentDidMount
内的API。 HTML立即加载,但在React启动并完成GET之后,没有任何有用的内容。
这很浪费。最好在渲染初始HTML时点击API。但。我不知道实现这个的干净方法。看起来我可以通过使用存根$
方法在节点中声明全局get
来获得我想要的东西,但这感觉很脏。
如何在渲染React组件服务器端时实现$.ajax
?
代码在Github上是公开的。 Here's a component $.get
和here's my API。
答案 0 :(得分:3)
如果你按照一些回购方式做得更好,就像这样:
请参阅https://github.com/erikras/react-redux-universal-hot-example
答案 1 :(得分:2)
以下是我解决这个问题的方法。
在Node中声明了我自己的全局$
,并使用get
方法直接调用路由器。这就是它的样子:
global.$ = {
get: (url, cb) => {
const req = {url: url};
const res = {
send: data => cb(data),
status: () => {
return {send: data => cb(data)};
}
};
return api_router(req, res);
}
};
一些警告