"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Profundización en los ganchos de reacción

Profundización en los ganchos de reacción

Publicado el 2024-08-28
Navegar:166

React Hooks es una característica poderosa introducida en React 16.8 que le permite usar el estado y otras características de React sin escribir una clase. Le permiten organizar la lógica dentro de un componente, haciendo que su código sea más limpio y reutilizable. Profundicemos en algunos de los React Hooks más utilizados:

1. usoEstado

  • El gancho useState en React le permite agregar un estado a los componentes funcionales. Devuelve una matriz con dos elementos: el valor del estado actual y una función para actualizar ese estado.

Uso básico:

Deep Dive into React Hooks

  • estado: el valor actual del estado.

  • setState: una función para actualizar el estado.

Puntos clave:

  • Estado inicial: el estado inicial puede ser cualquier tipo de datos, como un número, cadena, objeto o matriz.

  • Actualización del estado: puede actualizar el estado pasando un nuevo valor a setState o usando una función que tome el estado anterior como argumento.

  • Representaciones: la actualización del estado activa una nueva representación del componente.

  • Inicialización diferida: para un estado inicial complejo, puede pasar una función a useState para calcular el valor inicial solo en el primer renderizado.

Ejemplo:

Deep Dive into React Hooks

En este ejemplo, useState se utiliza para administrar un estado de recuento, que se actualiza cuando se hace clic en el botón.

2. usoEfecto

  • El gancho useEffect en React le permite realizar efectos secundarios en sus componentes funcionales. Los efectos secundarios podrían incluir la obtención de datos, la manipulación manual del DOM o la suscripción a servicios.

Sintaxis básica:

Deep Dive into React Hooks

Cómo funciona:

  • El primer argumento es una función que contiene el código del efecto secundario.

  • La función de devolución opcional se utiliza para la limpieza, como cancelar la suscripción a un servicio para evitar pérdidas de memoria.

  • El segundo argumento es una serie de dependencias. El efecto se ejecuta solo cuando una de las dependencias cambia.

Matriz de dependencia:

  • Si la matriz de dependencia está vacía ([]), el efecto se ejecuta solo una vez después del renderizado inicial.

  • Si se omite, el efecto se ejecuta después de cada renderizado.

Casos de uso comunes:

  • Obteniendo datos de una API cuando se monta el componente.

  • Suscribirse a eventos (por ejemplo, WebSocket, cambio de tamaño de ventana) y limpieza cuando el componente se desmonta.

  • Actualizando el título del documento o interactuando con el DOM.

Ejemplo:

Deep Dive into React Hooks

Comprender useEffect es fundamental para gestionar los efectos secundarios y garantizar que los componentes se comporten como se espera en los renderizados.

3. utilizar contexto

  • El gancho useContext en React le permite acceder y consumir valores de contexto en sus componentes funcionales. El contexto proporciona una manera de compartir valores (como un estado global) entre componentes sin tener que pasar accesorios manualmente en cada nivel.

Sintaxis básica:

Deep Dive into React Hooks

Cómo funciona:

  • Primero creas un contexto usando React.createContext(), que devuelve un objeto de contexto.

  • Este objeto de contexto viene con dos componentes: Proveedor y Consumidor.

  • El componente Proveedor proporciona el valor de contexto, al que pueden acceder todos los componentes anidados que utilicen el gancho useContext.

Ejemplo:

Deep Dive into React Hooks

Cuándo utilizar:

  • Utilice useContext cuando necesite pasar datos profundamente a través de un árbol de componentes sin necesidad de profundizar.

  • Es particularmente útil para temas, autenticación de usuarios, configuración de idioma o cualquier gestión de estado global.

Nota importante:

  • useContext activará una nueva renderización cada vez que cambie el valor del contexto, así que úselo con prudencia para evitar renderizaciones innecesarias en su árbol de componentes.

useContext simplifica el consumo de valores de contexto, lo que facilita la gestión del estado global en toda su aplicación.

4. utilizarReductor

  • El gancho useReducer en React se utiliza para gestionar una lógica de estado más compleja en componentes funcionales. Proporciona una alternativa a useState y es particularmente útil cuando los cambios de estado dependen de valores de estado anteriores o involucran múltiples subvalores.

Sintaxis básica:

Deep Dive into React Hooks

Cómo funciona:

  • reductor: una función que determina cómo debe cambiar el estado en función de la acción recibida. Toma el estado actual y una acción, y devuelve el nuevo estado.

  • initialState: el valor inicial del estado.

Ejemplo:

Deep Dive into React Hooks

Cuándo utilizar:

  • Utilice useReducer cuando tenga una lógica de estado compleja que involucre múltiples subvalores o cuando las actualizaciones de estado dependan de valores de estado anteriores.

  • También es útil cuando necesitas manejar múltiples acciones que pueden afectar el estado de diferentes maneras.

useReducer ayuda a gestionar el estado de una manera más predecible y fácil de mantener, especialmente en escenarios con interacciones de estado complejas o cuando la lógica del estado debe encapsularse en una sola función.

5. utilizar nota

  • El gancho useMemo en React se utiliza para optimizar el rendimiento memorizando los resultados de cálculos costosos, asegurando que solo se vuelvan a calcular cuando cambien sus dependencias. Ayuda a evitar recálculos innecesarios en cada renderizado.

Sintaxis básica:

Deep Dive into React Hooks

Cómo funciona:

  • useMemo toma una función que calcula un valor y una matriz de dependencia.

  • La función solo se reevalúa cuando una de las dependencias cambia.

  • Devuelve el resultado memorizado del cálculo.

Ejemplo:

Deep Dive into React Hooks

Cuándo utilizar:

  • Utiliza useMemo cuando tengas cálculos costosos que no necesiten volver a calcularse en cada renderizado.

  • Es particularmente útil para optimizar el rendimiento en componentes con cálculos pesados ​​o grandes transformaciones de datos.

Nota importante:

  • useMemo no garantiza que el valor no se volverá a calcular; simplemente garantiza que se recalcule solo cuando cambien las dependencias.

  • El uso excesivo de useMemo o su uso para cálculos triviales puede agregar complejidad innecesaria sin mejoras significativas en el rendimiento.

useMemo es una poderosa herramienta para optimizar el rendimiento, pero debe usarse con prudencia para lograr un equilibrio entre rendimiento y complejidad.

6. utilizarDevolución de llamada

  • El gancho useCallback en React se usa para memorizar funciones de devolución de llamada, evitando que se vuelvan a crear en cada renderizado a menos que sus dependencias cambien. Esto puede ayudar a optimizar el rendimiento al evitar repeticiones innecesarias de componentes secundarios que dependen de estas devoluciones de llamada.

Sintaxis básica:

Deep Dive into React Hooks

Cómo funciona:

  • useCallback toma una función y una matriz de dependencia.

  • La función se memoriza y solo se recreará si una de las dependencias cambia.

  • Devuelve la versión memorizada de la función de devolución de llamada.

Ejemplo:

Deep Dive into React Hooks

Cuándo utilizar:

  • Utilice useCallback para memorizar funciones de devolución de llamada que se pasan como accesorios a componentes secundarios para evitar reproducciones innecesarias.

  • Es útil cuando un componente secundario se basa en la igualdad de referencias para evitar renderizaciones innecesarias o para evitar recrear funciones dentro de componentes que desencadenan operaciones costosas.

Nota importante:

  • useCallback ayuda a mantener referencias de funciones estables en todos los renderizados, lo que puede mejorar el rendimiento de los componentes que dependen de estas funciones.

7. utilizarRef

  • El gancho useRef en React se usa para conservar valores mutables en los renderizados sin provocar nuevos renderizados. Se puede utilizar para acceder e interactuar con elementos DOM directamente o para almacenar valores mutables que no activan la repetición de renderizados cuando se actualizan.

Sintaxis básica:

Deep Dive into React Hooks

Cómo funciona:

  • useRef devuelve un objeto mutable con una propiedad actual.

  • initialValue se asigna a current en el primer renderizado.

  • Puedes actualizar la versión actual sin provocar una nueva renderización.

Ejemplo:

Deep Dive into React Hooks

Casos de uso comunes:

  • Acceder a elementos DOM: para interactuar directamente con nodos DOM, como enfocar una entrada o medir el tamaño de un elemento.

  • Valores persistentes: para mantener los valores que deben conservarse en los renderizados sin activar un nuevo renderizado, como realizar un seguimiento de los valores de estado anteriores o los temporizadores.

Nota importante:

  • Las actualizaciones actuales no activan una nueva renderización del componente.

  • useRef es útil para casos en los que necesita administrar o interactuar con valores o elementos DOM sin afectar la lógica de representación del componente.

useRef proporciona una forma de mantener referencias mutables que persisten en los renderizados, lo que la convierte en una herramienta versátil para gestionar tanto las interacciones DOM como los valores no relacionados con el renderizado.

Conclusión

React Hooks simplifica la gestión del estado, el manejo de efectos secundarios y otra lógica en los componentes funcionales. Promueven la reutilización del código y una mejor organización al permitirle extraer lógica en ganchos reutilizables. Comprender estos ganchos y su uso adecuado puede mejorar significativamente tus habilidades de desarrollo de React.

Por favor, comparta sus puntos de vista sobre esto. ¡Feliz codificación!

Declaración de liberación Este artículo se reproduce en: https://dev.to/khushboo-tolat/deep-dive-into-react-hooks-47k5?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3