Как работает рендеринг на стороне сервера (SSR) в Next.js?

Пользователь

от gage , в категории: JavaScript , 2 года назад

Как работает рендеринг на стороне сервера (SSR) в Next.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от karen.wisozk , 2 года назад

@gage 

Рендеринг на стороне сервера (SSR) в Next.js означает, что при запросе страницы сервер генерирует HTML-код и отправляет его клиенту, вместо того, чтобы отправлять только JavaScript-код, который затем должен будет загрузиться и выполниться на стороне клиента.


В Next.js, SSR осуществляется с помощью Node.js сервера. Когда пользователь запрашивает страницу, сервер Node.js генерирует HTML-код, используя React-компоненты, определенные в приложении Next.js. Для этого он выполняет следующие шаги:

  1. Сначала, сервер получает запрос на страницу и определяет, какой компонент должен быть отображен на этой странице, и какие данные нужны для его отображения.
  2. Затем, сервер получает эти данные, обычно через API запросы к сторонним сервисам или базам данных.
  3. После этого, сервер вызывает метод getInitialProps для соответствующего компонента React, который загружает необходимые данные и передает их в компонент через пропсы.
  4. Затем, сервер вызывает метод render компонента, передавая ему данные в качестве пропсов. Компонент рендерит свой HTML-код на основе полученных данных.
  5. Наконец, сервер отправляет сгенерированный HTML-код клиенту в ответ на его запрос на страницу.


После того, как HTML-код был отправлен клиенту, любой динамический контент или интерактивность, которая требует выполнения JavaScript-кода, может быть обработана на стороне клиента с помощью React, который уже загружен на страницу.


Этот подход к рендерингу страниц на стороне сервера имеет несколько преимуществ, таких как улучшенная производительность, улучшенная оптимизация поисковых систем, более быстрое время загрузки страницы, и лучшая доступность.