Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: form, event, preventdefault

Как предотвратить перезагрузку страницы при отправке формы?

Вопрос проверяет знание основ обработки событий форм в React и различия между управляемыми и неуправляемыми компонентами.

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

Чтобы предотвратить перезагрузку страницы при отправке формы, нужно отменить поведение по умолчанию события submit. В React это делается вызовом event.preventDefault() в обработчике отправки формы.

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

Поведение по умолчанию:
По умолчанию при отправке формы браузер пытается отправить данные на сервер и перезагружает страницу. В современных SPA-приложениях это поведение нежелательно.

Как отменить:
В обработчике события onSubmit формы нужно вызвать event.preventDefault().

Пример:

const LoginForm = () => {
  const handleSubmit = (event) => {
    event.preventDefault(); // Предотвращаем перезагрузку
    // Дальше ваша логика обработки данных формы
    console.log('Форма отправлена, но страница не перезагрузилась');
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" name="username" />
      <input type="password" name="password" />
      <button type="submit">Login</button>
    </form>
  );
};

Что дальше:
После отмены перезагрузки вы можете:

  • Валидировать данные формы.

  • Отправлять данные на сервер с помощью AJAX (например, через fetch или axios).

  • Обновлять состояние приложения based on the server response.

Важно:
Не забывайте обрабатывать ошибки при отправке данных и показывать пользователю feedback.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • React

    React

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

#form

#event

#preventdefault

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