没有同构的服务器端反应路由器
server-side react-router without being isomorphic
在我的网络应用程序中,我不想使用基于散列的路由,我不想看到任何 #
出现在我的 URL 中。我想使用 RESTful URLs,例如 http://www.example.com/blog/id。
react-router
可以很好地处理客户端路由,但是如果用户在浏览器地址栏上回车或刷新页面,请求将被发送到网络服务器,然后网络服务器必须了解 URL 并处理路由。
Isomorphic 是解决这种情况的好方法,因为它可以在客户端和服务器端呈现任何页面。实际上 Github 上有很多 react starter kit 项目声称是同构的。
在我看来,同构看起来很漂亮,但是写代码成本太高:你需要让你的react组件在客户端和服务端都渲染成功,这需要开发者付出很多努力。
所以这是我的问题,我可以只让 react-router 同构,而不是整个代码吗?
是的。您可以将 react-router 用于具有 HTML5 历史记录的纯前端(非同构)应用程序。
路由是客户端决定的,所以react-router会吐出预期的页面。
但是,虽然您不需要编写任何服务器端代码,但您需要配置网络服务器以将您的路由指向正确的位置。这通常意味着将每个请求(或每个有效请求)指向相同的 HTML 文件或入口点。具体如何执行此操作取决于您使用什么来为您的页面提供服务 - Express、Apache 等。
我希望这是有道理的。
在我的网络应用程序中,我不想使用基于散列的路由,我不想看到任何 #
出现在我的 URL 中。我想使用 RESTful URLs,例如 http://www.example.com/blog/id。
react-router
可以很好地处理客户端路由,但是如果用户在浏览器地址栏上回车或刷新页面,请求将被发送到网络服务器,然后网络服务器必须了解 URL 并处理路由。
Isomorphic 是解决这种情况的好方法,因为它可以在客户端和服务器端呈现任何页面。实际上 Github 上有很多 react starter kit 项目声称是同构的。
在我看来,同构看起来很漂亮,但是写代码成本太高:你需要让你的react组件在客户端和服务端都渲染成功,这需要开发者付出很多努力。
所以这是我的问题,我可以只让 react-router 同构,而不是整个代码吗?
是的。您可以将 react-router 用于具有 HTML5 历史记录的纯前端(非同构)应用程序。
路由是客户端决定的,所以react-router会吐出预期的页面。
但是,虽然您不需要编写任何服务器端代码,但您需要配置网络服务器以将您的路由指向正确的位置。这通常意味着将每个请求(或每个有效请求)指向相同的 HTML 文件或入口点。具体如何执行此操作取决于您使用什么来为您的页面提供服务 - Express、Apache 等。
我希望这是有道理的。