Он заменит Redux? Давайте разберемся!

Управление состоянием - большая часть наших современных веб-приложений. Потребность в глобальном менеджере состояний ощущалась с самого начала React.

Затем появился Redux и победил. Он стал универсальным решением для управления состоянием для большинства крупномасштабных приложений.

Но редукция далека от совершенства. А в последнее время кажется, что популярность редукса падает. Многие новые игроки присоединились к игре государственного управления, и Recoil является одним из них.

Так что же такое Recoil?

Проще говоря, Recoil - это еще одно решение для управления состоянием React. Сообщество React резко выросло после появления RecoilJS. Он очень быстро набирает популярность.

Он поддерживается командой Facebook (которая также поддерживает React).

Однако имейте в виду, что Recoil - не официальная библиотека управления состоянием для React.

Почему тебе должно быть до этого дело?

Recoil имеет некоторые явные преимущества перед другими библиотеками управления состоянием.

  • В нем меньше шаблонов (в отличие от redux)
  • Легко выучить и понять (в противоположность сокращению)
  • Легко понять поток данных (в противоположность redux)
  • Больше в соответствии с современным React (поддержка параллельного режима)
  • Отличный опыт разработчика
  • Производительность не проблема

Здесь много обещаний. Но так ли хороша эта библиотека? Давайте посмотрим на саму библиотеку, чтобы найти ответ!

Основные понятия отдачи

Любая библиотека государственного управления имеет в основном 3 цели

  1. Создание государства
  2. Чтение данных из состояния
  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