в настоящее время я изучаю ReactJS я видел NextJS и React Router
Может ли кто-нибудь сказать мне, каковы плюсы между ними. Я не уверен, правильно ли сравнивать эти два, но из того, что я вижу, у реактивного маршрутизатора уже есть функция SSR. Так в чем же преимущество использования NextJS?
Спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Next.js (см. Также альтернативы, такие как GatsbyJS и After.js) - это полнофункциональные фреймворки SSR / статических сайтов, поэтому вы получаете множество функций прямо из коробки, если вам нужно сгенерировать статический сайт SSR. Эти фреймворки решили множество проблем, поэтому добавить функцию становится так же просто, как читать документацию, а не самостоятельно исследовать и кодировать.
Если вы закодируете свою собственную настройку с помощью стандартного приложения React и реактивного маршрутизатора, вы можете столкнуться с множеством сложных и крайних случаев, когда будете копаться в SSR.
Короче говоря, если SSR является основным требованием, определенно рассмотрите возможность использования инфраструктуры SSR React.
Ответ Джеда в значительной степени резюмирует это, но вот некоторые пояснения:
Реагирует на роутер позволяет SSR, но не реализует его. Вам все равно нужно сделать серверный скрипт, который, по крайней мере, преобразует приложение в строку и передает ее клиенту. Возможно, вам придется делать другие вещи, например, обслуживать статические файлы. NextJS сделает это за вас.
SSR имеет несколько предостережений, которые также охватывает NextJS, в основном начальные асинхронные функции (например, выборка из API). В системе, созданной на заказ, вам нужно будет определить, какие функции вы должны вызывать, обычно на основе маршрута, и передать данные компонентам, обычно с Redux
В настоящее время я работаю над веб-сайтами с обеими системами, и у обеих есть свои плюсы и минусы. NextJS имеет особый способ объявления маршрутов и совершенно другой способ перемещения по ним, но создание собственной системы, которая имеет дело со всем, что охватывает NextJS, - это вполне работа. Я бы не рекомендовал делать все самостоятельно, если это действительно не нужно, и, возможно, проверить альтернативы, такие как Gatsby, если асинхронные нагрузки не вызывают беспокойства.
Маршрутизатор React позволяет маршрутизаторам отображать свои маршруты с сервера. Вам все еще нужно создать серверный скрипт, который, по крайней мере, отображает приложение в строку и передает ее клиенту. Возможно, вам придется делать другие вещи, например, обслуживать статические файлы и некоторую обработку маршрутов на уровне сервера (обычно это API). NextJs, с другой стороны, делает все это из коробки. Это проясняет это?
Пожалуйста. Я добавлю пояснение к ответу, чтобы было понятнее.
Замечание о Gatsby - он обрабатывает загрузку данных как во время сборки SSR, так и асинхронно после монтирования компонентов в браузере. Это довольно хорошо, проверьте это, если вы еще этого не сделали. Для меня он имеет преимущество перед Next.js как с точки зрения функций, так и с точки зрения документации.
@JedRichards: да, сейчас ищите все варианты, думаю, Гэтсби неплохой
спасибо Диего. Не могли бы вы объяснить больше, что вы имеете в виду под «React Router не подразумевает этого»? так как я вижу это в документе reacttraining.com/react-router/web/guides/server-rendering