В чем разница между react-router и Next.js

в настоящее время я изучаю ReactJS я видел NextJS и React Router

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

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
17
0
13 164
2

Ответы 2

Next.js (см. Также альтернативы, такие как GatsbyJS и After.js) - это полнофункциональные фреймворки SSR / статических сайтов, поэтому вы получаете множество функций прямо из коробки, если вам нужно сгенерировать статический сайт SSR. Эти фреймворки решили множество проблем, поэтому добавить функцию становится так же просто, как читать документацию, а не самостоятельно исследовать и кодировать.

Если вы закодируете свою собственную настройку с помощью стандартного приложения React и реактивного маршрутизатора, вы можете столкнуться с множеством сложных и крайних случаев, когда будете копаться в SSR.

Короче говоря, если SSR является основным требованием, определенно рассмотрите возможность использования инфраструктуры SSR React.

Ответ Джеда в значительной степени резюмирует это, но вот некоторые пояснения:

  • Реагирует на роутер позволяет SSR, но не реализует его. Вам все равно нужно сделать серверный скрипт, который, по крайней мере, преобразует приложение в строку и передает ее клиенту. Возможно, вам придется делать другие вещи, например, обслуживать статические файлы. NextJS сделает это за вас.

  • SSR имеет несколько предостережений, которые также охватывает NextJS, в основном начальные асинхронные функции (например, выборка из API). В системе, созданной на заказ, вам нужно будет определить, какие функции вы должны вызывать, обычно на основе маршрута, и передать данные компонентам, обычно с Redux

В настоящее время я работаю над веб-сайтами с обеими системами, и у обеих есть свои плюсы и минусы. NextJS имеет особый способ объявления маршрутов и совершенно другой способ перемещения по ним, но создание собственной системы, которая имеет дело со всем, что охватывает NextJS, - это вполне работа. Я бы не рекомендовал делать все самостоятельно, если это действительно не нужно, и, возможно, проверить альтернативы, такие как Gatsby, если асинхронные нагрузки не вызывают беспокойства.

спасибо Диего. Не могли бы вы объяснить больше, что вы имеете в виду под «React Router не подразумевает этого»? так как я вижу это в документе reacttraining.com/react-router/web/guides/server-rendering

MisterCat 27.11.2018 22:04

Маршрутизатор React позволяет маршрутизаторам отображать свои маршруты с сервера. Вам все еще нужно создать серверный скрипт, который, по крайней мере, отображает приложение в строку и передает ее клиенту. Возможно, вам придется делать другие вещи, например, обслуживать статические файлы и некоторую обработку маршрутов на уровне сервера (обычно это API). NextJs, с другой стороны, делает все это из коробки. Это проясняет это?

Diego Nosi 27.11.2018 22:39

Пожалуйста. Я добавлю пояснение к ответу, чтобы было понятнее.

Diego Nosi 27.11.2018 23:51

Замечание о Gatsby - он обрабатывает загрузку данных как во время сборки SSR, так и асинхронно после монтирования компонентов в браузере. Это довольно хорошо, проверьте это, если вы еще этого не сделали. Для меня он имеет преимущество перед Next.js как с точки зрения функций, так и с точки зрения документации.

Jed Richards 28.11.2018 13:34

@JedRichards: да, сейчас ищите все варианты, думаю, Гэтсби неплохой

MisterCat 29.11.2018 06:52

Другие вопросы по теме