Так как Context больше не является экспериментальной функцией, вы можете напрямую использовать Context в своем приложении и отлично подойдет для передачи данных глубоко вложенным компонентам, для которых оно было разработано.
Как написал Марк Эриксон в своем блоге :
Если вы используете Redux только для того, чтобы избежать передачи реквизитов, контекст может заменить Redux - но тогда вам, вероятно, не понадобился Redux.
Контекст также не дает вам ничего подобного Redux DevTools
, возможность отслеживать обновления состояния, middleware
добавлять централизованную логику приложения и другие мощные возможности, которые Redux
позволяют.
Redux
является гораздо более мощным и предоставляет большое количество функций , которые Context Api
не обеспечивает, а также в качестве Как @danAbramov упоминалось
React Redux использует контекст внутри, но не раскрывает этот факт в общедоступном API. Поэтому вам следует чувствовать себя намного безопаснее, используя контекст через React Redux, чем напрямую, потому что, если он изменится, бремя обновления кода будет лежать на React Redux, а не на вас.
Дело за Redux, чтобы фактически обновить свою реализацию, чтобы придерживаться новейшего API контекста
Новейший Context API можно использовать для приложений, где вы просто используете Redux для передачи данных между компонентами, однако приложения, которые используют централизованные данные и обрабатывают запрос API в создателях Action, используют redux-thunk
или redux-saga
все еще нуждаются в избыточности. Помимо этого, у редукса есть и другие связанные библиотеки, например, redux-persist
которые позволяют сохранять данные хранилища в localStorage и обновлять данные при обновлении, что контекстный API по-прежнему не поддерживает.
Как упомянул @dan_abramov в своем блоге, вам может не понадобиться Redux , у такого приложения есть такое полезное приложение, как
- Сохраните состояние в локальном хранилище, а затем загрузитесь с него из коробки.
- Предварительно заполните состояние на сервере, отправьте его клиенту в формате HTML и загрузитесь с него из коробки.
- Сериализуйте действия пользователя и прикрепите их вместе со снимком состояния к автоматическим отчетам об ошибках, чтобы разработчики продукта
могли воспроизвести их, чтобы воспроизвести ошибки.
- Передача объектов действия по сети для реализации сред совместной работы без существенных изменений в написании кода.
- Сохраняйте историю отмен или реализуйте оптимистичные мутации без существенных изменений в написании кода.
- Путешествуйте между историей состояний в процессе разработки и переоценивайте текущее состояние из истории действий при изменении кода, как TDD.
- Предоставьте полный инструментарий средств для проверки и контроля, чтобы разработчики продуктов могли создавать собственные инструменты для своих
приложений.
- Предоставьте альтернативные пользовательские интерфейсы, используя большую часть бизнес-логики.
С этими многочисленными приложениями слишком рано говорить, что Redux будет заменен новым Context API
duix
пакет npm. Это всего лишь простой менеджер состояний с обратными вызовами, который очень легко реализовать. Просто чтобы быть ясно: я создатель.