Usar useEffectes probablemente la mejor parte de React Hooks. Ayuda a reducir el desorden de los métodos del ciclo de vida de los componentes y, lo que es más importante, ayuda a separar la lógica diferente que puede aparecer en los métodos del ciclo de vida. Hoy, vamos a repasar un ejemplo para cada uno de los principales beneficios de useEffectcon ejemplos que son del sitio web de React.
Primero, repasemos cómo el gancho puede ayudar a reducir el desorden general. Este primer caso será cómo su método típico de ciclo de vida basado en clases se incluiría en un caso básico sin desmontar.
componentDidMount() {
document.title = `You clicked ${this.state.count} times`;
}
componentDidUpdate() {
document.title = `You clicked ${this.state.count} times`;
}
useEffect(() => {
document.title = `You clicked ${count} times`;
});
Como ya puede ver en el ejemplo anterior, esto se reflejará en qué tan bueno useEffectes en el caso de usar llamadas API y desmontar. A continuación se muestra un ejemplo simple de cómo se verían sus métodos de ciclo de vida si estuviera usando una ChatAPI para suscribirse al estado en línea de un amigo.
componentDidMount() {
ChatAPI.subscribeToFriendStatus(
this.props.friend.id,
this.handleStatusChange
);
}
componentWillUnmount() {
ChatAPI.unsubscribeFromFriendStatus(
this.props.friend.id,
this.handleStatusChange
);
}
handleStatusChange(status) { this.setState({ isOnline: status.isOnline }); }
useEffect(() => {
function handleStatusChange(status) {
setIsOnline(status.isOnline);
}
ChatAPI.subscribeToFriendStatus(
props.friend.id,
handleStatusChange
);
return function cleanup() {
ChatAPI.unsubscribeFromFriendStatus(
props.friend.id,
handleStatusChange );
};
});
¡No olvides que useEffectse ejecuta en cada renderizado! Esto puede ser excesivo si su actualización es gráficamente costosa o una llamada a la API que no se necesita constantemente. Una de las mejores partes useEffectes lo fácil que es optimizar algo.
useEffect(() => {
const subscription = props.source.subscribe();
return () => {
subscription.unsubscribe();
};
},
[props.source],
);
useEffect(() => {}, []);
Además, si agrega una matriz vacía useEffectcomo segundo argumento, solo se ejecutará una vez y luego se desmontará si es necesario. Esto es similar a si solo estuviera usando componentDidMounty componentWillUnmountsin usar componentDidUpdate. Este es un truco crucial para saber si solo desea ejecutarlo una vez al principio.
Ahora, estos ejemplos fueron bastante simples y espero haber podido guiarlo en su transición de usar Clases a Hooks más fácilmente. useEffectes una gran herramienta en el uso de Hooks, y ayuda a disminuir la carga de administrar funciones de ciclo de vida gigantes y voluminosas que pueden acumularse en su base de código.
Cada una useEffecttiene su propia función que puede manejar su propio montaje, actualizaciones y desmontajes. Siento que esto ayuda a los desarrolladores "externos" a mantener más fácilmente y, si es necesario, realizar cambios en esa parte del código base sin estropear accidentalmente otras partes del código. También pueden realizar fácilmente cambios o adiciones a la optimización.
Pueden saber con seguridad que la useEffectfunción que están modificando solo maneja lo que es necesario para esa suscripción o actualización específica. ¡Por supuesto, asumiendo que el desarrollador original no agregó una lógica no relacionada a esa función! Sé que nunca harías algo así, ¿verdad?
Gracias por leer mi pequeño schpiel sobre el uso del useEffectgancho en React. Si lo disfrutó (y aprendió algo), estaba pensando en tocar el tema de la optimización en React también en un futuro cercano, en particular, useStateya que aún no he hablado de eso. Independientemente, ¡gracias por su tiempo y manténgase a salvo!
Cuando realiza una solicitud a facebook.com, su computadora busca el nombre de dominio para traducir ese nombre de dominio en una dirección IP para que su computadora pueda hacer esa conexión.
Introducción Un accidente cerebrovascular es una emergencia médica que puede afectar a cualquier persona en cualquier momento. Ocurre cuando se interrumpe el flujo de sangre a una parte del cerebro, lo que lleva a una pérdida repentina de la función cerebral.
Si queremos seguir prosperando en este planeta, vamos a tener que tener conversaciones peligrosas. Aquellas que desafían lo que hemos hecho, lo que estamos haciendo y lo que actualmente vamos a seguir haciendo (o planeamos hacer).
En el mundo hiperconectado de hoy, los sistemas de medios juegan un papel fundamental en la formación de la opinión pública y, en consecuencia, en la toma de decisiones democrática. En su profundo análisis de la economía política de la comunicación, el académico Robert McChesney desafía la sabiduría convencional y presenta lo que él llama las “cinco verdades” sobre los medios.
“Él me protegerá cuando esté en peligro. Me esconderá en su tienda.
La semana pasada noté un comunicado de prensa, enviado a través de PressGazette (un sitio web de noticias de los medios británicos). El artículo anunciaba que Acast, la empresa de publicidad y alojamiento de podcasts de Scandi, lideraría un consorcio de editores "probablemente los más influyentes" en podcasting.