Является ли React Context в основном мини-магазином redux? - PullRequest
0 голосов
/ 03 августа 2020

Никакой практической цели в этом вопросе, просто попробуйте соединить концепции, чтобы понять, как переключиться с Redux на использование контекстов useReducer и React - это контекст при использовании с useReducer` в основном хранилище redux, доступное только для компоненты, которые явно импортируют его?

Ответы [ 2 ]

2 голосов
/ 03 августа 2020

Нет. Контекст и Redux - это очень разные инструменты, которые решают очень разные проблемы.

Контекст - это просто механизм, позволяющий сделать одно значение доступным для части вашего дерева компонентов. Вы должны написать код, который определяет, что это за значение и как оно обновляется. Обычно это делается путем сохранения данных в состоянии компонента React и создания значения, которое передается в <MyContext.Provider>.

Redux - это отдельная библиотека управления состоянием c с поддержкой пользовательского интерфейса, которая разработана, чтобы помочь вам записывать предсказуемый журнал обновлений состояния c и отслеживать, когда, где, почему и как ваше состояние обновлялось с течением времени, с помощью слоя привязок пользовательского интерфейса React-Redux, позволяющего вашим компонентам React взаимодействовать с этим хранилищем Redux.

Теперь да, useReducer+useContext действительно имеет некоторое сходство с Redux с точки зрения того, как ваш компонент будет взаимодействовать с ними, но они также имеют очень разные характеристики производительности с точки зрения того, когда и почему ваши компоненты будут повторно визуализироваться.

Пожалуйста, посмотрите мой обширный пост на Полное руководство (в основном) по React Rendering Behavior и мои дополнительные сообщения Redux - еще не мертв! и React, Redux и Context Behavior для получения подробной информации о различиях Redux и Context и чем

0 голосов
/ 03 августа 2020

Нетрудно реализовать точный logi c response-redux с помощью useContext, useReducer и, возможно, useSelector)

Но useContext + useReducer - это не полная замена Redux.

useReducer - это просто альтернатива useState.

И useContext поставляется с https://en.reactjs.org/docs/context.html#caveats Для хранения нескольких значений вы должны https://en.reactjs.org/docs/context.html#consuming -множественные контексты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...