Сегодня делюсь своим опытом использования фреймворков Gatsby JS и Next JS.

Gatsby JS:

GatsbyJS - генератор статических сайтов. Он выполняет предварительную сборку и в результате возвращает статические файлы (HTML, CSS, JS). Это означает, что серверная часть выполняет работу на стороне сервера один раз на этапе сборки (кроме случаев, когда клиент в браузере запрашивает API).

Особенности:

  • Поддержка создания статических сайтов
  • Поддержка рендеринга на стороне клиента
  • Использование GraphQL для обработки данных
  • Обширная поддержка собственных плагинов и плагинов сообщества.
  • Используется: reactjs.org, www.figma.com

Мои наблюдения:

  • Отличная платформа для создания статических страниц.
  • Из коробки поддержка Оптимизация изображений, Разделение кода (загрузка пакета JavaScript страниц на основе запроса / навигации пользователя).
  • Возможности PWA предоставляются встроенными плагинами. Эти библиотеки действительно хороши и пользуются большой поддержкой сообщества gatsby.
  • Инкрементальная статическая сборка может использоваться для создания динамического веб-сайта. Но в настоящее время он поддерживает только облачный хостинг gatsby.
  • Для получения данных из API он сильно зависит от Graph QL. Несмотря на то, что этого можно избежать, для некоторых функций, таких как Оптимизация изображений и некоторых плагинов, требуется Graph QL.

Мои рекомендации:

Экосистема Gatsby сильно зависит от Graph QL. Одного лишь знания React JS команде разработчиков недостаточно для создания веб-сайта с помощью Gatsby. С точки зрения производительности, у него будет меньше времени на отрисовку контента, и он будет загружаться быстро, поскольку страница будет готова во время сборки. Мы рекомендуем Gatsby JS, если варианты использования предназначены только для создания статических сайтов.

Следующий JS

Next.js - это JavaScript-фреймворк, созданный Vercel. Он позволяет создавать рендеринг на стороне сервера и статические веб-приложения с помощью React.

Особенности:

  • Поддержка рендеринга на стороне сервера
  • Поддержка создания статических сайтов
  • Поддержка рендеринга на стороне клиента
  • Динамический сайт
  • Инкрементальная генерация статических сайтов
  • Использование: marvel.com, hulu.com

Мои наблюдения:

Мои рекомендации:

Мы можем рекомендовать Next JS только в том случае, если у нас есть допустимые варианты использования как для создания статических сайтов, так и для генерации на стороне сервера. Для генерации обслуживающей стороны на сервере должен быть запущен узел js. Страницы, созданные на этой платформе, будут загружаться быстрее, и на первую отрисовку контента потребуется меньше времени. Мы также рекомендуем создать «гибридное» приложение Next.js, используя статическую генерацию для нескольких страниц и используя рендеринг на стороне сервера для других. Мы также можем использовать рендеринг на стороне клиента вместе со статической генерацией или рендерингом на стороне сервера. Это означает, что некоторые части страницы могут быть полностью обработаны клиентским JavaScript.

Приятного чтения!