我正在尝试在Node上构建同构应用程序,并首先将React从服务器呈现给客户端,然后通过Webpack将其捆绑以用于客户端呈现和UI。
但是,我在将客户端与服务器端分离时遇到问题。在客户端捆绑(正常工作)的React组件也可以在服务器端运行。因此,尝试更改状态或加载数据是不可能的,因为该组件同时在服务器和客户端上运行。
如何有效区分这些?还是我必须为客户端和服务器创建一个单独的组件文件夹(对于服务器,请忽略数据处理)。
不确定如何在Node中为平稳运行的同构应用程序正确完成此操作。
最佳答案
我认为您可以从样板react-redux-universal-hot-example和入门工具包react-universally中学到很多东西。两者均旨在提供通用渲染。
根据经验,根据我们在公司中使用的react-redux-universal-hot-example,我们拥有:
生成页面时(例如填充助焊剂库)的load dynamic data server-side
generate html具有React的主体
发送the data和ReactJS html body客户端。产生的html将显示在屏幕上(请确保先加载css以避免FOC效果)
在客户端重新生成您的应用程序状态,以使数据可用于react组件。
运行启动React单个应用程序客户端的javascript:react组件不应发出任何加载数据的请求,因为您已经生成了客户端的应用程序状态。
希望对您有所帮助:)