Вопрос проверяет понимание передачи общего состояния глубоко вложенным компонентам без проброса props.
React Context позволяет хранить состояние группы чекбоксов в одном месте.
Компоненты получают доступ к данным напрямую через Context.
Это избавляет от prop drilling.
Подход полезен для сложных форм и вложенных структур.
Когда чекбоксы находятся глубоко в дереве компонентов, передача состояния через props становится неудобной.
React Context — это механизм глобального доступа к данным внутри части дерева компонентов.
В Context обычно помещают:
текущее состояние чекбоксов
функции для его изменения
const CheckboxContext = React.createContext(null);
<CheckboxContext.Provider value={{ selected, toggle }}>
{children}
</CheckboxContext.Provider>
Внутри любого дочернего компонента:
const { selected, toggle } = useContext(CheckboxContext);
Это позволяет:
читать общее состояние
изменять его без промежуточных компонентов
Context подходит, если:
чекбоксы распределены по разным компонентам
форма сложная и вложенная
важно избежать лишнего проброса props
Нужно помнить:
изменение Context вызывает перерендер всех потребителей
для часто меняющихся данных это может быть дорого
Context удобен для управления группой чекбоксов в сложной иерархии, но требует осторожности из-за перерендеров.