State Management · Middle · Frage 6 von 75
Warum rendern alle Context-Konsumenten bei jedem Rendern des Providers neu?
<AuthContext value={{ user, login, logout }}>
{children}
</AuthContext>- 1Context rendert Konsumenten bei jedem Rendern der App immer neu
- 2
valueist jedes Mal ein neues Objekt, und React vergleicht mitObject.is - 3Funktionen lassen sich nicht über Context reichen, React erzeugt sie neu
Antwort zeigen
Richtige Antwort: value ist jedes Mal ein neues Objekt, und React vergleicht mit Object.is
Erklärung
Ein neues Objektliteral ist nie gleich dem vorigen. Memoisiere: const value = useMemo(() => ({ user, login, logout }), [user, login, logout]) mit useCallback für die Funktionen (der React Compiler kann das automatisch).