Керування станом · Middle · Запитання 6 з 75
Чому всі споживачі контексту перемальовуються при кожному рендері провайдера?
<AuthContext value={{ user, login, logout }}>
{children}
</AuthContext>- ✓Правильна відповідь:
value- щоразу новий об'єкт, а React порівнює його черезObject.is - 2Context завжди перемальовує споживачів на кожному рендері застосунку
- 3Функції не можна передавати через контекст, тому React перестворює їх
Пояснення
Новий літерал об'єкта ніколи не дорівнює попередньому. Мемоізуйте: const value = useMemo(() => ({ user, login, logout }), [user, login, logout]) і useCallback для функцій (React Compiler може зробити це автоматично).