服务器端react路由器不同构



在我的web应用程序中,我不想使用基于哈希的路由,我不希望看到任何#出现在我的URL中。我想使用RESTful URL,例如。,http://www.example.com/blog/id.

react-router可以很好地处理客户端路由,但如果用户点击浏览器地址栏上的enter或刷新页面,请求将被发送到web服务器,然后web服务器必须了解URL并处理路由。

同构是一个很好的解决方案,因为它可以在客户端和服务器端呈现任何页面。事实上,Github上有很多react-starter-kit项目声称是同构的。

在我看来,同构看起来很漂亮,但写代码太贵了:你需要让你的react组件在客户端和服务器端都能成功渲染,这需要开发人员付出巨大的努力。

所以我的问题是,我可以让react路由器同构,而不是整个代码吗?

是。您可以将react路由器用于具有HTML5历史的纯前端(非ismmorphic)应用程序。

路由是由客户端决定的,所以react路由器会吐出预期的页面。

然而,虽然您不需要编写任何服务器端代码,但您需要配置web服务器以将您的路线指向正确的位置。这通常意味着将每个请求(或每个有效请求)指向同一个HTML文件或入口点。具体如何做到这一点取决于您使用什么来服务您的页面-Express、Apache等

我希望这是有道理的。

最新更新