
Разбираемся, как правильно работать с формами в React! 🔍 Управляемые компоненты vs. неуправляемые: в чем разница, когда что использовать и как избежать типичных ошибок. 💡 Подробные примеры кода, сравнение производительности и лучшие практики от опытных разработчиков. 🚀 Узнайте, почему React рекомендует управляемые компоненты, но в некоторых случаях без неуправляемых не обойтись. Читайте гайд, чтобы писать чистый и эффективный код!
input) — это марионетка. Все, что в ней отображается, контролируется состоянием (state) вашего компонента. Пользователь вводит символ, срабатывает функция-обработчик (onChange), она обновляет состояние, и уже это обновленное состояние передается обратно в input в качестве его значения (value).state. Это делает react управляемые компоненты идеальным выбором для сложных форм с валидацией "на лету".TypeScript
handleChange(event) { // Мы полностью контролируем, что попадет в состояние setInputValue({value: event.target.value.toUpperCase()}); }
input живет своей жизнью и само хранит свое состояние прямо в DOM.refs). Вы как бы прикрепляете к элементу ref и, когда вам нужно (например, при отправке формы), просто обращаетесь к нему и забираете актуальное значение.TypeScript
class NameForm extends React.Component { constructor(props) { super(props); this.handleSubmit = this.handleSubmit.bind(this); this.input = React.createRef(); // Создаем реф } handleSubmit(event) { // При отправке формы берем значение прямо из DOM через реф alert('Отправленное имя: ' + this.input.current.value); event.preventDefault(); } render() { return ( <form onSubmit={this.handleSubmit}> <label> Имя: {/* Привязываем реф к нашему инпуту */} <input type="text" ref={this.input} /> </label> <input type="submit" value="Отправить" /> </form> ); } }
<input type="file" />).Информацию подготовили
124 активных участника
Здесь структурирована база знаний приложения