了解ReactJS和NodeJS应用程序如何工作

我正在尝试学习React JS,但是我很难理解它应该如何与NodeJS一起工作,比如说Express。

到目前为止,我明白ReactJS是“MVC”中的“V”这很简单,我已经可以使用create-react-app编写代码

这是我的理解:

  1. 将React和Express结合起来的“自然”方式就是简单地在Express中使用React和api编写前端(例如使用Mongo)。 这样我们就可以简单地从React调用ajax调用我们的/ api并显示数据

  2. 也有可能使用React来进行服务器端渲染,这需要更多的configuration。 这样我们不会从React调用/ api,我们只是使用React来编写可以被Express渲染的代码

我的问题是我在想什么吗? 不能确定所有这些…同构JavaScript是否与#2有关?

你大多是正确的,但使用服务器端渲染并不意味着你也不会发出API请求。 服务器端渲染是一种用于改善初始加载时间的技术。 而不是拉下你的JavaScript包,然后使一些API调用加载一堆数据,它需要渲染,而不是做服务器上的应用程序的初始渲染和引导。 然后将得到的HTML和应用程序的初始状态返回给客户端,以便应用程序可以立即显示给用户。 所以当谈到服务器端的渲染反应,这是真正的初始负载。

在初始加载之后,您仍然拥有一个dynamic的前端应用程序。 当用户与应用程序交互时,您仍然会发出api请求。 如果我去应用程序中的其他路线(假设它是一个单一的页面应用程序),需要额外的数据,我仍然会发出一个GET请求来加载数据。 如果我点击一个button来更新资源,我仍然会发出一个PUT或PATCH请求来这样做。

因此,就expression(如何使用后端语言/框架)而言,如何expression和反应适合在一起,提供了与数据存储中的数据进行交互的api。 反应是让你build立视图,消耗这些APIS。 服务器端渲染只是一个可以使用的附加技术,而不是一个完全独立的范例。