Crear formularios en React: Guía completa con componentes controlados y no controlados

Crear formularios en React: Guía completa con componentes controlados y no controlados

La creación de formularios es una tarea fundamental en el desarrollo web. En React, tenemos dos enfoques principales para construir formularios: componentes controlados y no controlados. Ambos métodos tienen sus ventajas y desventajas, y comprender sus diferencias es crucial para elegir el enfoque adecuado para tu proyecto.

Componetes Controlados vs. No Controlados

Imagina aprender a andar en bicicleta. Puedes intentar aprender sin ayuda, equilibrándote y pedaleando por tu cuenta (componentes no controlados). O puedes tener a alguien que te sostenga y te guíe mientras te familiarizas con el equilibrio (componentes controlados).

En los react js form controlados, React controla el estado de los elementos del formulario, actualizando el estado de forma sincronizada con los cambios del usuario. Esto significa que cada vez que un usuario escribe en un campo de entrada, el estado de React se actualiza, reflejando el cambio en tiempo real.

En los componentes no controlados, el navegador gestiona el estado de los elementos del formulario. React no tiene control directo sobre el estado de los elementos. Se utiliza el valor del atributo value para recuperar el valor del formulario.

Componentes controlados en React

Los componentes controlados ofrecen un mayor control sobre el estado del formulario y facilitan la validación y la gestión de los datos. Veamos un ejemplo sencillo:

«`javascript
import React, { useState } from ‘react’;

function LoginForm() {
const [username, setUsername] = useState(»);
const [password, setPassword] = useState(»);

const handleSubmit = (event) => {
event.preventDefault();
// Hacer algo con username y password
console.log(‘Username:’, username);
console.log(‘Password:’, password);
};

return (




LEER:  PHP While Loop: Guía Completa con Ejemplos y Bucles Anidados

);
}

export default LoginForm;
«`

En este ejemplo, los estados username y password controlan el valor de los campos de entrada. El evento onChange se utiliza para actualizar el estado cada vez que el usuario escribe en el campo de entrada.

Manejo de dropdowns y checkboxes

Los dropdowns y checkboxes se manejan de forma similar a los campos de entrada de texto. Para los dropdowns, se utiliza el atributo value para establecer el valor seleccionado y onChange para actualizar el estado. Para los checkboxes, se utiliza el atributo checked para determinar si está seleccionado y onChange para actualizar el estado del checkbox.

Múltiples campos de formulario

Para gestionar formularios con múltiples campos, se utiliza un objeto en el estado de React. Cada clave del objeto representa un campo del formulario y su valor representa el valor del campo.

«`javascript
import React, { useState } from ‘react’;

function ContactForm() {
const [formData, setFormData] = useState({
name: »,
email: »,
message: »,
});

const handleChange = (event) => {
const { name, value } = event.target;
setFormData({ …formData, [name]: value });
};

const handleSubmit = (event) => {
event.preventDefault();
// Hacer algo con formData
console.log(‘Formulario enviado:’, formData);
};

return (