试图了解同构反应应用程序应该如何进行客户端路由

Trying to understand how an isomorphic react app is supposed to do client-side routing

请原谅我的英语,它是第二语言。与常规客户端 SPA 不同,同构应用程序的全部意义在于,客户端不必一开始就下载整个 JS 文件,这会导致初始加载时间非常慢。

我一直在尝试自学服务器端渲染的 React,在观看了无数关于这个概念的视频并遵循了无数关于实际实现的教程之后,我仍然无法理解这个(至少这个我是这样理解的):

尽管服务器有条件地呈现页面并在 url 更改时向客户端发送道具,客户端仍然使用包含应用程序所有入口点的路由器(通过要求所有入口点,然后根据 url 位置加载文件)。这是否意味着所有文件都包含在主客户端 JS 文件中,因为客户端路由器已经需要它了?这不是违背了服务端渲染的 React 的全部目的吗?还是我想错了?

简而言之,同构 React 应用程序如何真正与包含(通过要求它们)所有应用程序入口点的客户端路由器一起工作?

我不确定 "The whole point of an isomorphic app [...] is so the client doesn't have to download the whole JS file initially which results in really slow initial load time" 是否一定正确。我认为人们这样做的主要原因是出于 SEO 原因和改善感知加载时间。您仍然可以在用户必须加载所有 JavaScript 之前向他们展示页面(例如,是的,他们必须加载所有 JS,但这没关系,因为他们已经有了 most/all 的内容).应用透明升级为SPA,为用户提供无缝体验。

就是说,您可以实现一个系统,在该系统中您不必一次加载所有 JS,例如 webpack's code splitting. There's even a simple React Router example 可以做到这一点。