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

时间:2018-11-27 13:23:21

标签: javascript reactjs react-router next.js

我目前正在使用ReactJS 我看到了NextJSReact Router

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

谢谢!

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:3)

Jed的回答概括了很多,但是这里有一些澄清:

  • 反应路由器允许,但未实现。您仍然需要制作至少为renders the app to a string and serve that to the client的服务器脚本。您可能需要做其他事情,例如提供静态文件。 NextJS为您做到了。

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

我目前正在同时使用这两种系统的Web上,并且都有各自的优缺点.NextJS有一种声明路由的特定方法以及一种遍历路由的非常不同的方法,但是制作了一个自定义系统来处理所有NextJS涵盖了相当多的工作。我不建议您自己动手制作所有东西,除非确实需要,如果不担心异步负载,也许可以检查Gatsby之类的替代产品