Смогут ли хуки свергнуть редукс?

Я некоторое время искал хуки React, и в моей голове постоянно возникал один вопрос. Смогут ли хуки свергнуть редукс? Это довольно старая дискуссия, поэтому сначала немного контекста:

Многие люди (включая команду React) считают, что редукс и ему подобные просто адаптируются к новому API, делая подход HOC устаревшим, но мой вопрос:

С пользовательскими хуками, использовать редуктор и хорошо продуманной логикой, зачем мне вообще нужен Redux? Я имею в виду, не более ли продуктивно отправлять свои действия на один редьюсер? Я нашел много материала об этом, но ни один из них, кажется, не имеет окончательного ответа (может быть, потому, что его нет?), поэтому я хотел бы знать, что вы думаете о будущем Redux?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
578
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Нет, определенно нет.

Я обратился к этому в моем Выступление Reactathon 2019 на тему «Состояние Redux».

Подводя итог: хуки в основном предлагают способы делать те же вещи, которые вы уже могли бы делать, например, состояние локального компонента и избегание детализации поддержки через контекст. Если это все, для чего вы использовали Redux, то вам, вероятно, вообще не нужен Redux. Но у хуков есть свои ограничения, и есть много дополнительных вариантов использования Redux.

Также обратите внимание, что мы в настоящее время работает над разработкой общедоступного API хуков типа useRedux() для React-Redux..

useReducer() не централизована сама по себе. Это просто еще один способ иметь состояние внутри компонента (функции). Вы уже можете поместить все состояние вашего приложения в свой корень <App>, используя this.state, если хотите, так что ничего существенного в этом нет с useReducer()
markerikson 10.04.2019 22:26

Будущее Redux: не забывайте также, что Redux используется не только с React — это контейнер состояния, не зависящий от фреймворка/библиотеки. Таким образом, даже если разработчики React перестанут с ним работать, Redux по-прежнему будет доступен другим разработчикам (Angular/Vue и т. д.) для использования в своих проектах.

Andy 10.04.2019 22:39

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

Jonathan Alfaro 25.07.2020 21:34

Нисколько! Redux по-прежнему очень широко используется — по моим оценкам, он используется примерно в 50% приложений React. Кроме того, хотя useReducer + useContext — хорошая комбинация, она имеет много ограничений и решает другой набор вариантов использования, чем Redux. Смотрите мой пост Редукс - еще не умер! для более подробной информации. Кроме того, наш официальный пакет Redux Toolkit упрощает использование Redux.

markerikson 25.07.2020 23:20

Сейчас действительно трудно сказать. Команда Redux активно обновляет продукт, добавляя в него несколько приятных функций. Однако один из создателей Redux (https://github.com/acdlite), похоже, находится на пути к уничтожению своих старых приложений в пользу новых функций в React.

При этом Redux — это проверенная и известная библиотека, с которой многие люди довольны. Я не считаю плохой идеей начать новый проект с редуксом сегодня, завтра или через год. Технологии не умирают за одну ночь. если он служит цели, он будет жить дальше.

Тем не менее, я думаю, что контекст и хуки — отличная альтернатива редуксу, но сообщество просто еще не знает, как его использовать.

Прошло больше года с момента публикации этого вопроса.

Хочу добавить, что на мой взгляд Redux потерял актуальность немного...

На мой взгляд, 2 игрока украли большую долю позиции Redux на рынке React:

  1. Люди научились комбинировать useReducer с useContext для реализовать гораздо более простое решение и без третьей стороны зависимости. С тем преимуществом, что за этим стоит команда React; что означает, что мы будем получать постоянные улучшения, тесно интегрированные с фреймворком React.

  2. MobX расширяет свою пользовательскую базу. Главным образом потому, что он предоставляет шаблон наблюдателя, который требует гораздо меньше шаблонного кода, чем Redux. (Об этом можно было бы поспорить).

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

Специально для развития с нуля!

Другие вопросы по теме