> Как работает useState в Next.js и является ли состояние глобальным или локальным для страницы (React, JavaScript, Next.js)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Библио-Глобус

Стек: React, JavaScript, Next.js

> Пример ответа

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

Например, если вы используете useState внутри компонента Counter и рендерите его на двух разных страницах (/page1 и /page2), каждая страница будет иметь своё независимое состояние счётчика. Переход между страницами (особенно при использовании клиентской навигации через next/link) приведёт к сбросу состояния, так как компонент размонтируется и монтируется заново.

Если требуется глобальное состояние (например, для данных пользователя или корзины), нужно использовать внешние инструменты: React Context, Redux, Zustand или другие библиотеки управления состоянием. В Next.js также можно хранить состояние на сервере (через API или базу данных) или использовать getServerSideProps/getStaticProps для передачи данных на этапе рендеринга.

Важно помнить, что useState работает только на клиенте. Если компонент с useState используется в серверном рендеринге (SSR), он должен быть помечен директивой 'use client' в Next.js 13+ (App Router). В Pages Router это не требуется, но хук всё равно выполняется только на клиенте после гидратации.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью