Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs renderComponentToString-有效负载大小_Reactjs - Fatal编程技术网

Reactjs renderComponentToString-有效负载大小

Reactjs renderComponentToString-有效负载大小,reactjs,Reactjs,作为起点,我可以成功地实现服务器端渲染/客户端装载。我遇到的问题是,react在传递给renderComponentToString的状态上标记了数据reactid后,页面的大小 该对象本身是来自服务器端异步调用的JSON负载,大小约为80KB。我按原样将其传递给renderComponentToString,结果页面超过20MB 在这个阶段,我想我可以切换到renderComponentToStaticMarkup,并在下次更新状态时使用hit客户端进行第一次区分,但我想知道这里是否有更智能的

作为起点,我可以成功地实现服务器端渲染/客户端装载。我遇到的问题是,react在传递给
renderComponentToString
的状态上标记了数据reactid后,页面的大小

该对象本身是来自服务器端异步调用的JSON负载,大小约为80KB。我按原样将其传递给renderComponentToString,结果页面超过20MB

在这个阶段,我想我可以切换到renderComponentToStaticMarkup,并在下次更新状态时使用hit客户端进行第一次区分,但我想知道这里是否有更智能的解决方案(props vs state?)。查看非常聪明的react quickstart()我看到异步状态有效地与正常组件生命周期完全解耦,因此不会受到此问题的影响,但是这里有很多移动部件,我更愿意基于这些部件提出一些更轻量级的产品,但是在客户端安装工作时,有必要的移动部件


想法?我做错什么了吗?

我现在已经解决了这个问题:


客户端装载的序列化负载实际上是在react render方法中呈现的,这是我的一个noob错误。这样做,而不是将其串接并以一段非反应标记的形式传递,这是我从一开始就应该做的。

什么是
document.body.scrollHeight
,该页面上有20mb的标记?一个潜在的解决方案可能是最初加载更少的数据,然后将页面重新组织为更小的页面,这可能也是一个更好的用户体验。它只有大约20个项目,只是每个项目都很复杂,并且有很多属性。我想我正在寻找一些验证,以证明我所看到的是预期的,并且在我考虑更改所使用的方法之前没有快速修复方法。当调用
renderComponentToStaticMarkup
时,标记的大小是多少?意思是,React ID实际增加了多少重量?固定,见下文,thx