Estoy un poco confundido sobre cuándo usar useEffect() la mayoría de los ejemplos que veo solo usan useEffect() para extraer datos de una API y otros ejemplos de efectos secundarios, pero no he visto personas que usen useEffect() al enviar Solicitud POST cuando se montará el componente.
Luego estaba tomando el curso de Epic React, este gancho personalizado me confundió:
const useLocalStorageState = (key, value = "") => { const [state, setState] = React.useState(() => window.localStorage.getItem(key) || value) React.useEffect(() => { window.localStorage.setItem(key, state) }, [key, state]); return [state, setState] }; Me confundió porque no están usando useEffect() para leer desde el almacenamiento local, lo cual es un efecto secundario, están usando useState() , habría usado useEffect() y luego useState() para establecer el valor de la variable de state
useEffect() se está utilizando para el efecto secundario de escribir en localStorage, si se trata de una solicitud POST a una API, ¿aún se aplicará useEffect() ?
Me confundió porque no están usando useEffect() para leer desde el almacenamiento local, lo cual es un efecto secundario, están usando useState(), habría usado useEffect() y luego useState() para establecer el valor de la variable de estado
Una buena razón para usar useEffect es que puede evitar la llamada a localStorage.getItem() , para cada procesamiento.
Sin embargo, esto sería necesario si llamara a localStorage.getItem() , para cada procesamiento.
const [state, setState] = React.useState( () => window.localStorage.getItem(key) || value ) En este ejemplo, no se llama a getItem para cada representación. Solo se usa en la devolución de llamada pasada a getState() . Este es el valor inicial y solo se usará en el primer renderizado. Entonces, resuelve el mismo problema.
useEffect() se está utilizando para el efecto secundario de escribir en localStorage, si se trata de una solicitud POST a una API, ¿aún se aplicará useEffect()?
Puede ser útil en useEffect , pero depende de la situación. En muchos casos, una solicitud POST podría activarse cuando el usuario presiona un botón ( submit o click eventos). En esos casos, es probable que la solicitud POST se active desde los controladores de eventos.
Si necesita hacer siempre una POST en eventos específicos del ciclo de vida de React (actualización, montaje, etc.), deberán estar en useEffect .