React · Senior · Запитання 21 з 75
Чому в useContext немає «селекторів» і як це обходять?
- ✓Правильна відповідь: Контекст будить усіх споживачів; дроблять контекст або беруть зовнішній store
- 2Селектори є: другий аргумент
useContext(Ctx, selector) - 3Селектори не потрібні: React сам порівнює поля об'єкта у
value
Пояснення
Будь-яка зміна value перемалює всіх, хто викликає useContext, навіть якщо їм потрібне одне поле. Обхідні шляхи: кілька вузьких контекстів, мемоізація споживачів, бібліотека use-context-selector або стор із підпискою за селектором (Zustand, Redux, Jotai).