Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: History API, pushState, replaceState, SPA routing, popstate event

Как в SPA меняется URL в адресной строке без перезагрузки страницы? Что такое History API?

Проверяет понимание механизма изменения URL в одностраничных приложениях без перезагрузки страницы с использованием History API.

Короткий ответ

History API позволяет изменять URL в адресной строке браузера без перезагрузки страницы. Методы pushState() и replaceState() добавляют или заменяют записи в истории браузера. Это используется в SPA для навигации между виртуальными страницами. Событие popstate срабатывает при нажатии кнопок "Назад" или "Вперед".

Длинный ответ

Что такое History API и зачем он нужен в SPA

В одностраничных приложениях (SPA) вся логика работает на одной HTML-странице. Чтобы пользователь мог перемещаться между разделами и при этом видеть изменение URL (например, /about, /products), используется History API. Он позволяет менять адресную строку без полной перезагрузки страницы, что делает навигацию быстрой и плавной.

Основные методы History API

  • pushState(state, title, url) — добавляет новую запись в историю браузера и меняет URL. Первый аргумент — объект состояния, который можно передать при возврате на эту запись.
  • replaceState(state, title, url) — заменяет текущую запись в истории, не создавая новую. Полезно для обновления URL без добавления лишних шагов.
  • popstate event — срабатывает, когда пользователь нажимает кнопки "Назад" или "Вперед". В обработчике можно получить сохранённое состояние и обновить интерфейс.

Пример использования

// Переход на страницу /about без перезагрузки
history.pushState({ page: 'about' }, '', '/about');

// Обработка нажатия кнопки "Назад"
window.addEventListener('popstate', (event) => {
  if (event.state) {
    console.log('Вернулись на страницу:', event.state.page);
    // Обновляем интерфейс в соответствии с состоянием
  }
});

Где применяется

History API используется в современных фреймворках (React Router, Vue Router) для реализации клиентской маршрутизации. Он также полезен при создании интерактивных виджетов, где нужно сохранять состояние в URL (например, фильтры на странице товаров).

Вывод: History API — ключевой инструмент для построения SPA с удобной навигацией. Его стоит применять, когда требуется менять URL без перезагрузки страницы, сохраняя при этом возможность использовать кнопки браузера "Назад" и "Вперед".

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • React

    React

Ключевые слова

#History API

#pushState

#replaceState

#SPA routing

#popstate event

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию