React isomorphic App中的状态会发生什么

时间:2017-01-17 13:39:10

标签: reactjs isomorphic-javascript

我正在使用React构建一个同构应用程序,它必须支持没有JS的用户。

我是这项技术的新手,我有一个基本的疑问: 服务器可以存储组件状态以模拟React在客户端执行的操作吗?

当用户没有JS时,我想象这个流程:

  1. 用户单击按钮并向服务器发送请求。
  2. 服务器恢复应用程序的状态并对其进行更改。
  3. 组件会侦听此更改并再次呈现。
  4. 这是对的吗?

1 个答案:

答案 0 :(得分:0)

假设你正在使用react-router:

服务器旨在初始化您的状态,为其提供在获取网址时使您的应用程序正常工作所需的默认最小值。

例如,如果您有一个应用程序要在其中显示用户列表,请在/ users URL上说,当您发送第一个请求时,服务器将存储用户在反应状态。

首次加载之后,您将使用react-router在客户端工作,并发出XHR请求。

但是,如果您刷新页面,则流程将重新开始:首先加载初始化状态,然后再进行客户端导航。

编辑:解释=>

如果要在服务器上使用react,这意味着您使用Nodejs服务器。事实上,react-dom提供了一个名为renderToString的方法,它将react jsx组件转换为标准HTML。

这旨在加载第一次通话

为什么?

当您在客户端加载“大”JS应用程序时,您有一些延迟时间,浏览器需要下载JS包的时间。

服务器端呈现旨在避免这种行为,或者至少让人觉得应用程序启动得更快。

在任何情况下,即使您使用服务器端渲染,也不能使用react。 为什么?。因为按钮上的事件,客户端或按键上的异步加载都是用JS语言编写的。