我正在使用React构建一个同构应用程序,它必须支持没有JS的用户。
我是这项技术的新手,我有一个基本的疑问: 服务器可以存储组件状态以模拟React在客户端执行的操作吗?
当用户没有JS时,我想象这个流程:
这是对的吗?
答案 0 :(得分:0)
假设你正在使用react-router:
服务器旨在初始化您的状态,为其提供在获取网址时使您的应用程序正常工作所需的默认最小值。
例如,如果您有一个应用程序要在其中显示用户列表,请在/ users URL上说,当您发送第一个请求时,服务器将存储用户在反应状态。
在首次加载之后,您将使用react-router在客户端工作,并发出XHR请求。
但是,如果您刷新页面,则流程将重新开始:首先加载初始化状态,然后再进行客户端导航。
编辑:解释=>
如果要在服务器上使用react,这意味着您使用Nodejs服务器。事实上,react-dom提供了一个名为renderToString的方法,它将react jsx组件转换为标准HTML。
这旨在加载第一次通话
为什么?
当您在客户端加载“大”JS应用程序时,您有一些延迟时间,浏览器需要下载JS包的时间。
服务器端呈现旨在避免这种行为,或者至少让人觉得应用程序启动得更快。
在任何情况下,即使您使用服务器端渲染,也不能使用react。 为什么?。因为按钮上的事件,客户端或按键上的异步加载都是用JS语言编写的。