仅客户端路由的缺点是什么?

时间:2019-08-16 19:41:17

标签: reactjs authentication react-router gatsby

在一个gatsbyjs网站上,我正在考虑是否使用仅客户机路由概念(https://www.gatsbyjs.org/docs/building-a-site-with-authentication/)从服务器(从我说的传统方法)到服务器提供受限页面 >

我想要的是让static url的内容根据身份验证状态显示或不显示,而不是当时只有该客户端可以访问的client-only url不同

我想知道这是否是没有服务器的“缺点”,或者不是这种情况,并且我不太了解

而且,与基于服务器的方法相比,还有其他缺点吗?

1 个答案:

答案 0 :(得分:1)

我可以提出两个弊端,而这些弊端实际上只是保护私有路由的其他方式:

  1. 服务器计算
  2. 提供用户特定数据
  3. Gatsby无法在服务器上动态呈现

1。服务器计算

一个缺点是客户端呈现页面而不是您的服务器。如果要最小化服务器计算,这也可能是一个优势。除此之外,没有任何缺点。这是保护私人路线的另一种方式。

您可以通过链接的文档中介绍的仅客户端机制来定义诸如www.your-site.com/settings/account之类的仅客户端路由。对于已登录的用户,此路由受到保护。如果未登录,则将不会呈现该网站,并且会将他们重定向到登录页面。

2。提供用户特定的数据

我不确定您所说的静态URL是什么。只要您的用户登录,就会为他们呈现URL www.your-site.com/settings/account。您可以通过JSON Web令牌,Cookie,会话和各种API为用户提供正确的数据。

这并不是一个真正的缺点。对于服务器和客户端呈现的页面,您始终需要以仅将私有数据发送给经过身份验证的用户的方式来构建API。

3。 Gatsby无法在服务器上动态呈现

这意味着您将必须在静态站点中实现服务器呈现的页面。我认为没有任何官方文档。当您再次动态渲染网站的一部分时,使用站点网站生成器Gatsby毫无意义。

如果您选择使用盖茨比,我建议您使用仅客户端路由,因为这样一来,它仍然是一个静态站点,并具有所有优势。