Проверяет понимание того, как в SSR-приложениях реализуется интерактивность и пагинация без полной перезагрузки страницы.
SSR (Server-Side Rendering) означает, что HTML формируется на сервере и приходит клиенту уже готовым. Это ускоряет первую отрисовку и улучшает SEO. Но сам по себе HTML статичен: кнопки, фильтры и пагинация не работают, пока на клиенте не выполнится JavaScript и не произойдёт гидратация (hydration) — привязка обработчиков к уже отрисованному DOM.
После гидратации приложение превращается в обычное SPA. Клиентский роутер (например, Next.js Router или React Router) перехватывает клики по ссылкам пагинации и вместо полной перезагрузки делает переход на клиенте.
// pages/items/[page].js
import { useRouter } from 'next/router';
export async function getServerSideProps({ params }) {
const res = await fetch(`https://api.example.com/items?page=${params.page}`);
const items = await res.json();
return { props: { items, page: Number(params.page) } };
}
export default function Items({ items, page }) {
const router = useRouter();
return (
<div>
{items.map(i => <div key={i.id}>{i.title}</div>)}
<button onClick={() => router.push(`/items/${page + 1}`)}>
Следующая
</button>
</div>
);
}При клике router.push меняет URL и подгружает данные через getServerSideProps на сервере, но без полной перезагрузки страницы — Next.js делает это как клиентский переход. Если пользователь откроет /items/2 напрямую, сервер отдаст готовый HTML.
Итог: SSR даёт быстрый первый рендер, а интерактив и пагинация после гидратации работают как в SPA — без полной перезагрузки. Такой подход стоит применять, когда важны и SEO, и отзывчивый интерфейс.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию