useContext позволяет вам считывать и подписываться на контекст, созданный с помощью createContext. Контекст — это способ передать данные через дерево компонентов без необходимости пропускать пропсы на каждом уровне. Сначала создайте контекст с помощью createContext. Укажите значение по умолчанию, которое будет использоваться, если нет Provider. Вызывайте useContext внутри вашего компонента для получения текущего значения контекста. Чтобы передать данные через контекст, используйте Context.Provider. Убедитесь, что Provider находится выше в дереве компонентов по сравнению с компонентами, которые используют useContext. 1. Передача данных глубоко в дерево Если Button находится внутри компонента, который обернут в ThemeContext.Provider, он получит значение "dark". 2. Обновление данных через контекст Передача функций и объектов через контекст может приводить к ненужным рендерам, если эти функции и объекты пересоздаются при каждом рендере. Убедитесь, что Context.Provider находится выше в дере