我目前正在探索ReactJS
我看到了NextJS和React Router
有人可以告诉我两者之间的优缺点吗?我不确定比较这两个是否正确,但从我所看到的,react-router已经具备了SSR功能。那么使用NextJS的好处是什么?
谢谢!
谢谢!
Next.js(另请参考替代品,如GatsbyJS和After.js)是全功能的SSR /静态网站框架,因此如果您需要生成SSR静态站点,则可以直接获得许多功能。这些框架解决了很多问题,因此添加功能就像阅读文档一样简单,而不是自行研究和编码。
如果您使用标准的React应用程序和react-router创建自己的设置,则在深入研究SSR时可能会遇到许多复杂性和边缘情况。
总之,如果SSR是核心要求,请务必考虑使用SSR React框架。
Jed的回答基本上概括了它,但这里有一些澄清:
React Router 允许 SSR,但不实现它。您仍然需要编写服务器脚本,至少将应用程序呈现为字符串并将其提供给客户端。您可能还需要执行其他操作,例如提供静态文件。NextJS会为您处理这些。
SSR带有一些注意事项,NextJS也涵盖了这些注意事项,主要是初始异步函数(例如从API获取数据)。在自定义系统中,您需要确定应该调用哪些函数,通常基于路由,并使用Redux将数据传递给组件,通常是这样做的。
我目前正在使用这两个系统开发网站,它们各有优缺点。NextJS有一种特定的声明路由的方式和极其不同的移动方式,但是自己制作一个处理NextJS所有内容的自定义系统相当繁琐。除非确实需要自己制作,否则我不建议您自己制作,可以考虑其他选择,例如Gatsby,如果异步加载不是问题的话。