Он заменит Redux? Давайте разберемся!
Управление состоянием - большая часть наших современных веб-приложений. Потребность в глобальном менеджере состояний ощущалась с самого начала React.
Затем появился Redux и победил. Он стал универсальным решением для управления состоянием для большинства крупномасштабных приложений.
Но редукция далека от совершенства. А в последнее время кажется, что популярность редукса падает. Многие новые игроки присоединились к игре государственного управления, и Recoil является одним из них.
Так что же такое Recoil?
Проще говоря, Recoil - это еще одно решение для управления состоянием React. Сообщество React резко выросло после появления RecoilJS. Он очень быстро набирает популярность.
Он поддерживается командой Facebook (которая также поддерживает React).
Однако имейте в виду, что Recoil - не официальная библиотека управления состоянием для React.
Почему тебе должно быть до этого дело?
Recoil имеет некоторые явные преимущества перед другими библиотеками управления состоянием.
- В нем меньше шаблонов (в отличие от redux)
- Легко выучить и понять (в противоположность сокращению)
- Легко понять поток данных (в противоположность redux)
- Больше в соответствии с современным React (поддержка параллельного режима)
- Отличный опыт разработчика
- Производительность не проблема
Здесь много обещаний. Но так ли хороша эта библиотека? Давайте посмотрим на саму библиотеку, чтобы найти ответ!
Основные понятия отдачи
Любая библиотека государственного управления имеет в основном 3 цели
- Создание государства
- Чтение данных из состояния
- Обновление состояния
1. Создание государства
Вы можете использовать 2 вещи для создания магазина в Recoil.
- Атом
- Селектор
Посмотрим, как их использовать.
1а. Атом
Согласно документации
Атомы содержат источник истины для состояния нашего приложения
Проще говоря, атомы - это фрагменты данных, которые вы хотите сохранить в состоянии. это может быть тема вашего приложения или список задач.
Если вы хотите, чтобы какая-то часть ваших данных была сохранена и доступна глобально, вы должны создать для этого атом.
1б. Селектор
Согласно сделанной документации
Селектор представляет собой часть производного состояния
Это означает, что если
- Вы хотите получить некоторые данные из других состояний
- Или хотите что-то вычислить на основе данных, хранящихся в атомах
Для этого можно использовать селекторы. Например, вы сохранили свои задачи в атоме todoListState
. Теперь вы хотите отфильтровать todoList
по их статусу. Вы можете использовать для этого селектор.
2. Прочтите значения
Recoil предоставил нам несколько хороших крючков. Один из них - useRecoilValue
, который можно использовать для чтения данных из атома или селектора.
3. Обновите значения.
Что хорошо в Recoil, так это то, что в нем больше Reactish
.
У нас есть useState
хук в React. Recoil предоставил нам похожий крючок под названием useRecoilState
. Его можно использовать для установки состояния атома или селектора.
Есть еще несколько утилит, которые могут помочь вам в различных сценариях. Вы можете заглянуть в документацию
Заменит ли он Redux?
Короткий ответ: НЕТ! Позволь мне объяснить
Отдача - это не решение всего
Recoil предназначен для решения очень специфической задачи. Если у вас много-много взаимозависимых компонентов, это может помочь вам повысить производительность.
С другой стороны, сокращение является более общим. Это даже не относится к React.
Отдача большого размера
Если вы перейдете в NPM, вы увидите размер этих пакетов.
отдача = 1,56 МБ
redux + react-redux = 448 КБ
Так что Recoil значительно больше, чем Redux. Во многих случаях, особенно когда важен размер пакета, это становится важной проблемой.
Recoil не готов… пока
Recoil - новинка по сравнению с redux. Он активно развивается. Но по пути вас может ожидать множество неожиданных сбоев! Он еще не готов к производству.
Но Redux - это устоявшаяся библиотека с множеством других библиотек для ее поддержки. Кроме того, он более стабилен и пользуется отличной поддержкой сообщества.
Redux становится лучше
Большинство проблем связано с многословием Redux. Введение набора инструментов redux также решило эту проблему (Почти: p).
А при сильной поддержке сообщества и активном развитии он будет улучшаться день ото дня.
Многие крупные проекты уже используют Redux
Redux никуда не денется. По крайней мере, в ближайшие 2–3 года. Многие крупные проекты уже запускаются с использованием redux, и сложно изменить архитектуру в мгновение ока.
Так что, если вы чаще всего нацеливаетесь на работу, Redux будет более желательным в вашем резюме!
Recoil не поддерживает промежуточное ПО
В настоящее время Recoil не поддерживает промежуточное ПО. Может быть, это произойдет в будущем. Но я думаю, вам следует обдумать это, прежде чем принимать.
Так стоит ли изучать Recoil?
Абсолютно да!
Он представил несколько новых интересных концепций. Может быть, попробуй это для какого-нибудь забавного небольшого проекта. Играть с этим. Знайте, когда это может быть полезно. Если ваш проект требует этого, используйте его.
Самое главное, продолжайте учиться! Хорошего дня!
Есть что сказать? Свяжитесь со мной через LinkedIn