Tengo funciones que quiero ejecutar cuando cambia el estado. Pero no quiero que esperen hasta que se complete el renderizado, ya que no depende del DOM renderizado.
¿Hay alguna manera de ejecutar una función cuando ciertas dependencias cambian como useEffect , pero no esperar hasta que se complete el procesamiento?
Estaba pensando en usar useMemo o useCallback , pero no parece una solución ideal ya que usa memoria.
¿Hay una solución directa para esto?
Si el código que desea ejecutar puede llamar a los setters de estado, lo que da como resultado un parpadeo no deseado, puede cambiar useEffect por useLayoutEffect , que se ejecuta después de que se hayan producido las mutaciones DOM del procesamiento, pero antes de que el navegador haya vuelto a pintar la pantalla. Como resultado, si se llama a algún definidor de estado y el componente se vuelve a representar, el usuario no verá la representación del componente dos veces, porque todas las actualizaciones se producen antes de que se vuelva a pintar la pantalla (excepto la última).
useLayoutEffect tiene exactamente la misma firma de función que useEffect , por lo que hacer los cambios debería ser bastante trivial.