Нет, зацепки не полностью устраняют необходимость в Redux. Хуки в основном являются альтернативой реализации функций, которые мы должны использовать сегодня для классов:
- Состояние локального компонента
- Контекст
- Методы жизненного цикла и побочные эффекты
Помимо описанного выше, ловушки также обеспечивают более простой способ обмена логикой состояния между компонентами.
Что более вероятно убить / заменить Redux, так это context вместо хуков, который является способом совместного использования состояния между компонентами. Но контекст IMO не такой мощный, как в хранилищах Redux, поскольку есть и другие функции, которые предлагает Redux, помимо общего хранилища состояний, такого как промежуточное ПО и специализированный devtool с возможностями для путешествий во времени. Существует также целая экосистема обучения и инструментария, построенная вокруг Redux, которой, насколько я знаю, в данный момент не существует.
Если вы используете хук useReducer
в сочетании с контекстом, как в в этом примере , это будет очень похоже на использование Redux и для небольших приложений (например, TodoMVC), этого может быть достаточно. Для больших приложений я не думаю, что достаточно одного контекста, и useReducer
будет достаточно. Вам может понадобиться несколько из них, и именно здесь использование Redux и создание магазинов имело бы смысл. Вы также можете комбинировать несколько контекстов и useReducer
хуков, но будет проще использовать Redux.