Как дела?
Я пишу это, потому что не так давно искал способ передачи состояний между компонентами без использования редукса и нашел useContext, в этой истории я объясню, как его использовать.

Требования

Чтобы понять это, вам нужно знать хуки, в основном useState.
Также вам нужно знать, как импортировать вещи, а также как использовать реакцию, потому что я объясню это с помощью реакции (это может также работать с nextJS)

ПЕРВЫЙ
Мы настраиваем наш проект, создаем контекст имени папки, а затем внутри него контекст имени файла js. Мы также можем поместить это в другой файл, такой как App.js, но я пытаюсь сделать его максимально чистым и читабельным.

Вот так должен выглядеть наш проект.

SECOND
В файле контекста мы добавляем импорт, который мы собираемся использовать, я добавляю хук useState, потому что пример, который я собираюсь показать, относится к useState
context.js

Общее объяснение состоит в том, что мы преобразуем его в контекст, когда
export const AppContext = createContext();

затем мы передаем дочерние элементы, потому что это все приложение, которое находится внутри него
и в
‹AppContext.Provider value={{name, setName}}›
Здесь мы передаем данные что все компоненты смогут использовать.

ТРЕТИЙ
Теперь, когда у нас есть файл контекста, давайте перейдем к App.js, где мы собираемся передать ‹AppWrapper› всем приложениям
App.js

Как видите, я уже передаю компоненты, которые использую, в данном случае это ‹Home/› и ‹Home2/›
Мы видим, что я передаю ‹AppWrapper› всем приложениям, так что все то есть внутри него будет возможность использовать состояния, которые мы изменяем.

Теперь давайте посмотрим, что внутри Home

home.js

Здесь мы видим, что я импортирую AppContext из контекста, который я буду использовать позже внутри компонента
const state = useContext(AppContext)
Здесь мы передаем состояния, чтобы использовать их следующим образом.< br /> Давайте посмотрим, как использовать состояние setFetching, чтобы сохранить дату в контексте и иметь возможность использовать ее позже в другом компоненте.
Я сделал асинхронный вызов API, в котором я сохраняю данные, которые я получил в setFetching,
чтобы использовать setFetching, сначала я должен вызвать state.setFetching, потому что мы получаем доступ к нему, выбрасывая контекст.
После того, как мы сохранили данные в контексте, давайте перейдем к файл, в котором мы собираемся его использовать
home2.js

Как мы видим, здесь я также импортирую useContext из «реакции», а также импортирую AppContext из контекста.

Затем определите состояние const = useContext(AppContext)

И, наконец, мы используем данные, которые хранятся

Вы сможете увидеть данные на консоли, добавив

console.log(состояние.выборка)

таким образом, вам не нужно будет отображать его, чтобы увидеть его

Вот и все, надеюсь, вам было полезно,

Вот репозиторий github https://github.com/lausuarez02/blogContext
Ура.