静态页面路由和仅客户端路由之间的Gatsby <Link>或@ reach-router <Link>?

时间:2020-04-25 20:40:19

标签: gatsby reach-router

我已经阅读了文档盖茨比<Link>,仅用于客户端的路由和@ reach / router。

我认为我对它的工作原理有很好的了解。但是,我想知道是否有关于在静态页面和仅客户端路由之间建立链接的建议,特别是使用Gatsby <Link>与@ reach / router <Link>

例如,假设/documentation/*处有静态页面 假设在/app/*

处有一个仅包含客户端路由的应用程序

这里有4种情况:

  1. 静态到静态 (例如,/documentation/feature-1/documentation/feature-2的链接): 显然应该在这里使用盖茨比<Link>

  2. 静态仅客户端 (例如,/documentation/feature-1/app/feature-1的链接): 我应该使用Gatsby <Link>还是@ reach / router <Link>?有关系吗?由于目的地仅是客户端,因此我猜测Gatsby <Link>的预加载无法正常工作吗?

  3. 仅客户端到仅客户端 (例如,/app/feature-1/app/feature-2的链接): 我认为我应该为此使用@ reach / router <Link>。但是我可以在这里使用盖茨比<Link>吗?这样做有什么好处吗?

  4. 仅客户端改为静态 (例如,/app/feature-1/documentation/feature-1的链接): 在这种情况下,我认为我应该使用Gatsby <Link>,因为目标是静态的,并且可能发生预取。

也许这里的答案很简单,我应该对所有内容都使用盖茨比<Link>,但是我不确定这是否是正确的答案,以及它的含义。

谢谢!

1 个答案:

答案 0 :(得分:1)

已更新: 我在媒介上的文章解释了here

简而言之,gatsby Link组件是@reach router link的包装,并添加了gatsby中更有用的内容,值得注意的是prefetch,文档here。 / p>

这就是为什么如果您需要上述盖茨比的东西,请使用gatsby Link。否则,只需使用@reach router link。对我来说,全力以赴gatsby Link。 希望这可以帮助。如果我做错了,请纠正。