Что такое ssr
SSR (Server-Side Rendering) — это технология рендеринга веб-страниц на сервере, а не на клиенте. В контексте современных JavaScript-фреймворков, таких как React или Vue.js, это означает, что HTML-код страницы генерируется на сервере и отправляется в браузер уже готовым для отображения. Это отличается от традиционного подхода клиентского рендеринга (Client-Side Rendering, CSR), где HTML генерируется непосредственно в браузере с использованием JavaScript.
Основные особенности и преимущества
1. Улучшение производительности и скорости загрузки:
- Первичный контент: Поскольку HTML генерируется на сервере, браузеры могут отображать готовый контент без необходимости ждать загрузки и выполнения JavaScript.
- SEO: Поисковые системы лучше индексируют страницы, так как весь контент доступен сразу.
2. Лучшая поддержка SEO:
- Статические HTML-страницы, генерируемые сервером, легче индексируются поисковыми системами, что улучшает видимость сайта в поисковых результатах.
3. Улучшенное восприятие пользователем (First Paint):
- Пользователи видят контент быстрее, так как сервер отправляет уже готовую HTML-разметку.
Как он работает
1. Запрос от клиента:
- Браузер отправляет запрос на сервер для получения страницы.
2. Генерация HTML на сервере:
- Сервер запускает JavaScript-код для рендеринга компонента или всей страницы.
- Сервер генерирует HTML-код и отправляет его клиенту.
3. Отображение страницы в браузере:
- Браузер получает готовую HTML-страницу и отображает её.
- Затем JavaScript-фреймворк (например, React или Vue) «гидрирует» страницу, то есть связывает готовую HTML-разметку с JavaScript-кодом, чтобы сделать страницу интерактивной.
Next.js — популярный фреймворк для React, который поддерживает SSR из коробки.
1. Установка Next.js:
```bash
npx create-next-app my-ssr-app
cd my-ssr-app
npm run dev
```
2. Создание страницы с SSR:
```javascript
// pages/index.js
import React from 'react';
const Home = ({ data }) => {
return (
<div>
<h1>Server-Side Rendering Example</h1>
<p>{data.message}</p>
</div>
);
};
// Эта функция вызывается на сервере при каждом запросе к странице
export async function getServerSideProps() {
// Выполняем запрос к API или базе данных
const res = await fetch('https://api.example.com/data');
const data = await res.json();
// Передаем данные как пропсы в компонент
return {
props: {
data
}
};
}
export default Home;
```
В этом примере Next.js использует функцию `getServerSideProps` для получения данных на сервере перед рендерингом страницы. Эти данные затем передаются в компонент как пропсы и используются для генерации HTML.
SSR (Server-Side Rendering) — это процесс рендеринга веб-страниц на сервере, а не в браузере. Это улучшает производительность, SEO и восприятие пользователем за счет отправки готового HTML-кода с сервера.
June 1, 2024, easyoffer