Alodnog
#webdev #react #programowanie

const res = useMemo(() => heavyFunction(), []);
vs

const [res] = useState(() => heavyFunction());
Jaka jest między nimi różnica? Oprócz tego, że useMemo może przyjąć dependency array.
  • Najlepsze
  • Wszystkie komentarze
Alodnog
Alodnog Autor
1
@nightman: Przerenderowałoby się gdybym zrobił coś takiego: useState(heavyFunction());. Ale jeśli wrzucam to w funkcję: useState(() => heavyFunction()); to się nie przelicza przy rerenderze
doee
doee
1
@Alodnog: useMemo - re-render wywołuje zmiana w dependency array, useState - re-redner wywołuje wywołanie setState, różnicy w działaniu nie ma
Marmite
@Alodnog: w tym wypadku chyba żadna, ale ogólnie różnica jest taka ze służą z grubsza do czego innego xD
nightman
@Alodnog: drugie przerenderuje się zawsze przy przerenderowaniu komponentu (może być mega często)
krzykrzy1995
@Alodnog: jesli nie zmieniasz res z poziomu komponentu, to useMemo.
Oba sluza do innych rzeczy.
Z poziomu uzytkownika, niczym sie to nie rozni