Reactjs React Redux服务器端再次在客户端上渲染重新渲染

Reactjs React Redux服务器端再次在客户端上渲染重新渲染,reactjs,redux,react-redux,isomorphic-javascript,server-side-rendering,Reactjs,Redux,React Redux,Isomorphic Javascript,Server Side Rendering,我使用redux中描述的方法创建了服务器端渲染,一切都很好,但在客户端,它再次渲染组件,我认为这并不好。我正在将相同的状态从服务器传递到窗口。uuu state\uuuu变量,并将其作为初始状态传递到客户端createStore方法,但它会再次重新运行。 如果需要,也请在评论中写下你需要哪部分代码。 我没有提供,因为它非常类似于官方页面说明代码,并且没有错误,只是重新命名的问题,但据我所知,它没有连接到虚拟DOM 请帮助我找到处理此任务的有效方法。查看ReactGo项目中的示例: 它们使用一个函

我使用redux中描述的方法创建了服务器端渲染,一切都很好,但在客户端,它再次渲染组件,我认为这并不好。我正在将相同的状态从服务器传递到
窗口。uuu state\uuuu
变量,并将其作为初始状态传递到客户端
createStore
方法,但它会再次重新运行。 如果需要,也请在评论中写下你需要哪部分代码。 我没有提供,因为它非常类似于官方页面说明代码,并且没有错误,只是重新命名的问题,但据我所知,它没有连接到虚拟DOM


请帮助我找到处理此任务的有效方法。

查看ReactGo项目中的示例:

它们使用一个函数
onUpdate
,该函数具有条件

  if (window.__INITIAL_STATE__ !== null) {
    window.__INITIAL_STATE__ = null;
    return;
  }

如果已定义了
\uuu初始状态\uuu
,则可防止重复回迁。您的组件重新渲染可能与重复获取有关。

也许我不理解您所说的重新渲染是什么意思,但它应该再次在客户端上“重新渲染”。同构的工作方式是,它在服务器上呈现HTML,然后负载包括初始状态以及HTML标记-这样浏览器“看起来”有更快的页面加载时间-因为UI甚至在脚本执行之前呈现。现在,一旦解析HTML并运行脚本,React将在内部构建虚拟DOM,然后将其与服务器生成的DOM进行比较,并连接事件侦听器等。但是,它不会执行完全重新渲染,因为不应创建新的DOM元素。如果由于任何原因,React渲染的客户端运行导致虚拟DOM与生成的服务器DOM不同,React将向您发出警告

“警告:React试图重用容器中的标记,但 校验和无效。这通常意味着您正在使用服务器 在服务器上生成的呈现和标记不是 客户端需要。React注入了新标记以补偿 工作正常,但您已经失去了服务器渲染的许多好处。 相反,请找出生成的标记在 客户端或服务器:“


您好,使用重新渲染,我的意思是它不是检查VirtualDOM的差异,而是重新渲染整个页面。另外,react没有给我警告,我会检查我的根组件是否连接到了
redux
,这就是它重新呈现整个页面的原因。