En React, los eventos se manejan de manera similar a cómo se manejan en el DOM tradicional. Sin embargo, en lugar de asignar manejadores directamente a los elementos del DOM, se utilizan funciones manejadoras en los componentes de React.
import React from 'react';
class BotonClic extends React.Component {
handleClick = () => {
alert('¡Botón clickeado!');
};
render() {
return button onClick={this.handleClick}>Clic aquí /button;
}
}
export default BotonClic;
import React from 'react';
class Formulario extends React.Component {
handleChange = (event) => {
console.log('Texto ingresado:', event.target.value);
};
render() {
return (
<div>
<input type="text" onChange={this.handleChange} />
</div>
);
}
}
export default Formulario;
La elevación de estado es un patrón en React donde el estado se mantiene en un componente padre y se pasa como prop a los componentes hijos que lo necesitan. Esto permite que los componentes compartan y sincronicen información.
import React from 'react';
class Padre extends React.Component {
constructor(props) {
super(props);
this.state = { contador: 0 };
}
incrementarContador = () => {
this.setState({ contador: this.state.contador + 1 });
};
render() {
return (
<div>
<Hijo contador={this.state.contador} />
<button onClick={this.incrementarContador}>Incrementar</button>
</div>
);
}
}
class Hijo extends React.Component {
render() {
return <p>Contador: {this.props.contador}</p>;
}
}
export default Padre;
import React from 'react';
class Hijo extends React.Component {
render() {
return (
<button onClick={this.props.onBotonClic}>Clic aquí</button>
);
}
}
class Padre extends React.Component {
manejarBotonClic = () => {
console.log('Botón clickeado en el padre');
};
render() {
return (
<div>
<Hijo onBotonClic={this.manejarBotonClic} />
</div>
);
}
}
export default Padre;
Además de la elevación de estado y el uso de callbacks, existen otros patrones de comunicación entre componentes en React, como el uso de contextos y bibliotecas de gestión de estado como Redux. La comunicación efectiva entre componentes es crucial para construir aplicaciones React bien organizadas y mantenibles.
En los próximos módulos, exploraremos el enrutamiento y la gestión de estado en profundidad.