我正在尝试学习React JS,但我很难理解它应该如何与NodeJS一起工作,让我们说使用Express。
到目前为止,据我所知,ReactJS在“MVC”中是“V” 这很简单,我已经可以使用create-react-app
编写代码了这就是我理解的:
组合React和Express的“自然”方式是简单地在React中编写前端,在Express中编写api(例如使用Mongo)。 这样我们就可以简单地从React调用ajax调用我们的/ api并显示数据
还有可能将React用于服务器端渲染,这需要更多配置。这样我们就不会从React调用/ api,我们只使用React来编写可以通过Express呈现的代码
我的问题是我在想吗? 不确定所有...... 同构JavaScript是否与#2有关?
答案 0 :(得分:2)
您大多是正确的,但使用服务器端呈现并不意味着您也不会发出api请求。服务器端呈现是一种用于改善初始加载时间的技术。而不是拉下你的javascript包,然后进行一些api调用来加载它需要渲染的一堆数据,而不是在服务器上进行应用程序的初始渲染和引导。然后将生成的html和应用程序的初始状态返回给客户端,以便可以立即向用户显示应用程序。因此,当谈论使用react的服务器端渲染时,它实际上是关于初始负载。
在初始加载之后,您仍然有一个动态前端应用程序。当用户与应用程序进行交互时,您仍然会发出api请求。如果我在应用程序中进入不同的路径(假设它是单页应用程序)需要额外的数据,我仍然会发出加载该数据的GET请求。如果我单击按钮更新资源,我仍然会发出PUT或PATCH请求。
因此,就快速和反应如何融合的问题而言,表达(或您使用的任何后端语言/框架)提供api与数据存储中的数据进行交互。并且反应允许您构建使用这些api的视图。服务器端渲染只是您可以使用的另一种技术,而不是完全独立的范例。