react-router和Next.js有什么区别

Mis*_*Cat 6 javascript reactjs react-router next.js

我目前正在浏览ReactJS,我看到了NextJSReact Router

谁能告诉我两者之间的利弊是什么。我不确定比较这两者是否正确,但是从我看来,react-router已经具有SSR功能。那么使用NextJS有什么好处?

谢谢!

Jed*_*rds 8

Next.js(另请参见GatsbyJS和After.js之类的替代品)是功能齐全的SSR /静态网站框架,因此,如果需要生成SSR静态网站,则可以立即使用很多功能。这些框架解决了许多问题,因此添加功能变得像阅读文档一样简单,而不是自己研究和编码。

如果您使用标准的React应用程序和react-router编写自己的设置,那么当您深入研究SSR时可能会遇到很多复杂性和极端情况。

简而言之,如果SSR是核心要求,则一定要考虑使用SSR React框架。


Die*_*osi 6

Jed的回应大致总结了一下,但是这里有一些澄清:

  • React Router 允许 SSR,但没有实现。您仍然需要制作一个服务器脚本,至少将应用程序呈现为字符串并将其提供给客户端。您可能需要做其他事情,例如提供静态文件。NextJS为您做到了。

  • SSR附带了NextJS的一些警告,主要是初始异步功能(例如,从API提取)。在定制系统中,您通常必须基于路由来确定应调用的函数,然后通常使用Redux将数据传递给组件

我目前正在使用这两种系统的Web上工作,并且都有优点和缺点.NextJS有一种声明路由的特定方法以及一种遍历路由的非常不同的方法,但是制作一个处理NextJS涵盖的所有内容的自定义系统是很好的工作。我不建议您自己动手制作所有东西,除非确实需要,如果不考虑异步负载,则可能会检查诸如盖茨比之类的替代产品

  • React Router允许路由器从服务器呈现其路由。您仍然需要制作一个服务器脚本,至少将应用程序呈现为字符串并将其提供给客户端。您可能需要做其他事情,例如提供静态文件和某些服务器级别的路由处理(通常是API内容)。另一方面,NextJs开箱即用。这样可以澄清吗? (3认同)