Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Webpack: hmr, development

Как webpack-dev-сервер обрабатывает замену горячего модуля (HMR)?

Этот вопрос проверяет понимание механизма Hot Module Replacement (HMR)

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

HMR позволяет обновлять модули в реальном времени, избегая полной перезагрузки страницы. Webpack-dev-сервер отслеживает изменения, пересобирает только изменённые части и применяет их в браузере через WebSocket.

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

Hot Module Replacement (HMR) — это функция Webpack, которая улучшает процесс разработки. Вместо перезагрузки всей страницы, изменённый код подгружается в браузер, что сохраняет текущее состояние приложения (например, данные в формах).

HMR работает через WebSocket:

  • Отслеживание изменений: Webpack следит за изменениями файлов с помощью watch mode.

  • Сборка и уведомление: Когда файл меняется, Webpack пересобирает только этот модуль и отправляет обновления в браузер.

  • Применение изменений: Браузер применяет изменения через HMR API без перезагрузки страницы.

Настройка HMR:

module.exports = {
  	devServer: {
    		hot: true, // Включает HMR
  	},
};

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

if (module.hot) {
  	module.hot.accept('./App', () => {
    		const NextApp = require('./App').default;
    		ReactDOM.render(<NextApp />, document.getElementById('root'));
  	});
}

HMR ускоряет цикл разработки, особенно для SPA, но требует поддержки в коде или соответствующих загрузчиков (например, style-loader для стилей).

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • Webpack

    Webpack

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

#hmr

#development

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