React Hooks
Los hooks nos permiten utilizar el estado y otras características de React sin necesidad de convertir nuestros componentes a clases.
Algunas de las funcionalidades que podemos utilizar son: manejo del estado con useState
, manejo de efectos secundarios como peticiones HTTP
con useEffect
, crear referencias con useRef
, entre otras.
useState
useState
es el hook que nos permite crear un estado para nuestros componentes función. Recibe como argumento el valor inicial del estado. Retorna un arreglo, donde la primera posición es el valor del estado, y la segunda posición es una función que modifica el estado.
En este caso el valor inicial del estado es 0
. En la asignación del estado estamos haciendo un destructuring
del estado, la primera posición la llamamos count
y la segunda posición setCount
.
useEffect
useEffect
es el hook que nos permite manejar efectos secundarios.
useEffect
recibe 2 argumentos, el primero es una función que se ejecutara después de que el componente se rendericé; el segundo argumento es un arreglo, este se conoce como las dependencias de nuestro hook, cuando el valor de alguna de las variables que nosotros agreguemos al arreglo de dependencias cambia, la función que pasamos como primer argumento es invocada nuevamente.
En este caso estamos haciendo una petición HTTP, cuando la respuesta es exitosa almacenamos la respuesta en el estado.
Podemos definir un arreglo vacío, en este caso la función solo es invocada la primera vez que se renderiza el componente.
Si pasamos un segundo argumento al
useEffect
, la función se invoca cada vez que el componente se actualiza. Ojo, puedes causar un ciclo infinito. Es recomendable pasar siempre al menos un arreglo vacío.
Creando nuestro propio hook
Es posible crear nuestros propios hooks utilizando los hooks básicos proporcionados por React. Para esto debemos crear una función, por convención su nombre debe empezar con use
y retornar los valores que queremos compartir. De esta manera podemos reutilizar funcionalida.
Reglas de los hooks
solo debes invocar un hook desde el nivel más alto de una función. Esto quiere decir que un hook nunca debe de ser invocado dentro de un conditional, un ciclo, o una función anidada.
Los hooks no se deben invocar desde funciones de JavaScript. Esto quiere decir que solo debemos invocar los hooks desde componentes de React o hooks propios.
Para una guía completa de los hooks visita la Referencia de la API de los Hooks.
Last updated