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

时间:2015-06-10 01:46:03

标签: reactjs client-side isomorphic-javascript

原谅我的英语,这是第二语言。同构应用程序的重点,与常规客户端SPA相反,客户端最初不必下载整个JS文件,这导致初始加载时间非常慢。

我一直在努力教自己服务器端呈现的React,在观看了无数关于概念的视频并关注实际实现的无数教程之后,我仍然无法理解这一点(至少这是怎么回事我明白了):

尽管服务器有条件地渲染页面并在URL更改时向客户端发送道具,但客户端仍然使用包含应用程序所有入口点的路由器(通过要求所有入口点,然后根据网址)。这是不是意味着所有文件都包含在主客户端JS文件中,因为客户端路由器已经要求它?这不是打败服务器渲染的React的全部目的吗?或者我是否以错误的方式思考这个问题?

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

1 个答案:

答案 0 :(得分:1)

我不确定“同构应用程序的全部内容是如此,客户端最初不必下载整个JS文件,导致初始加载时间非常慢”,这一定是正确的。我认为人们这样做的主要原因是出于搜索引擎优化的原因并且改善了感知的加载时间。在他们必须加载所有JavaScript之前,您仍然可以获得向用户显示页面的好处(例如,是的,他们必须加载所有JS,但是没关系,因为他们已经拥有了大部分/全部内容)。该应用程序透明地升级到SPA,为用户提供无缝体验。

也就是说,您可以实现一个系统,您不必使用webpack's code splitting之类的东西同时加载所有JS。甚至有a simple React Router example这样做。