React · Middle · Pytanie 55 z 75

Jak komponent powinien subskrybować zdarzenie przeglądarki, np. resize?

useEffect(() => {
  const onResize = () => setWidth(window.innerWidth);
  window.addEventListener("resize", onResize);
  return () => window.removeEventListener("resize", onResize);
}, []);

Wyjaśnienie

Bez sprzątania każde montowanie dodaje listener, który nigdy nie jest usuwany (Strict Mode to uwidacznia). Dla zewnętrznych store'ów solidniejszy jest useSyncExternalStore.

Do poczytania

Błąd w pytaniu

React · Middle · pytanie 55

Sprawdź się

Rozwiąż test React · Middle: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test