使用https://github.com/reactjs/express-react-views作为起点,我可以成功地使服务器端渲染/客户端安装工作。我遇到的问题是页面的大小,一旦反应已经将数据重新标记为传递给renderComponentToString
的状态。
对象本身是来自服务器端异步调用的JSON有效负载,大约有80KB。我按原样传递给renderComponentToString,结果页面超过20MB!
在这个阶段,我想我可以切换到renderComponentToStaticMarkup并在下次更新状态时将命中客户端作为第一个差异,但是想知道这里是否有更智能的解决方案(props vs state?)。看一下非常聪明的react-quickstart(https://github.com/andreypopp/react-quickstart)我发现异步状态实际上与正常的组件生命周期完全分离,因此没有遇到这个问题,但是这里有很多移动部件而且我是而是基于https://github.com/reactjs/express-react-views提出更轻量级的东西,但需要有必要的移动部件,以便客户端安装工作。
思考?我在这里做错了吗?
答案 0 :(得分:1)
我现在已经解决了这个问题:
客户端安装的序列化有效负载实际上是在react render方法中呈现的,这对我来说是一个noob错误。这是完成而不是将其串行化并将其传递给一个非反应标记,这是我应该从一开始就做的。