为什么使用<Link>比路由器更好?



我有一个电子商务应用程序在NextJS,我有一个问题,我的主菜单。事实上,如果我使用Next的<Link>标签,带或不带"预取";参数,我仍然有预取链接(悬停或如果项目是在视窗)。我的页面加载了getStaticProps。

我想使用<Link>来保留Next和SPA的所有好处,但我认为在我需要它们之前预取所有产品页面会破坏后端性能。

你认为我可以使用路由器吗?推送我的应用程序的这一部分?

通过使用router。push而不是Link Component,你的应用会失去它的功能,比如

  • SPA(因为它会重定向到一个新页面)和
  • SEO(因为它不能被爬虫检测到)

理想的电子商务平台,我认为最好利用链接组件,不要过度考虑你的预取问题,因为这些内置组件由nextJs已经由Vercel团队优化。

我们也应该只使用router。Link Components不够时push. 一个很好的例子是,当我们点击一个按钮时,我们想触发其他前端/后端函数,然后重定向到另一个页面。

function handleClick(){
randomFunction();
anotherRandomFunction()

router.push('<random_link>')
}