🔥

Тред (Илья Лесик)


Поговорим за стейт-менеджмент? Кто что использовал для управления стейтом?

Помимо понятного всем Redux, который до сих преследует в кошмарах и легаси-коде я использовал:

Apollo Client - пожалуй самый энтерпрайзный вариант из не-redux. Энтерпрайзный за счет того, что код на нем получается более менее одинаковый у всех. Легко подключать еще разработчиков на проект apollographql.com/docs/react/

Я состовлял awesome-list по Эффектору github.com/effector/aweso…

И писал статью: dev.to/lessmess/react…

Использовал также Стореон github.com/storeon/storeon - офигенно для маленьких проектов

Тысячу лет назад использовал MobX - но не зашло, магия + декораторы (фу-фу-фу) + слишком здоровый бандл

Писал и просто на Реакт хуках/стейте - но не рекомендую, код быстро становится неподдерживаемым.

Что еще интересно?

github.com/artalar/reatom - выглядит очень круто, но я сам, к сожалению, не пробовал. Автор - Артем @artalar_dev

У Артема также есть список с разными стейт-менеджерами gist.github.com/artalar/e5e8a7…

github.com/pmndrs/zustand - мне просто нравится иллюстрация, не пробовал

Интересная встреча по стейт-менеджерам была на @_tverio youtube.com/watch?v=cUSyJk…

Самый проблемный момент - никто не знает, где же должна находиться бизнес-логика проекта. (Копий на эту тему было сломано много, но добавьте свои пять копеек).

В принципе, для стейт-менеджемента еще можно использовать вещи, изначально может быть не слишком для него предназначенные

Например, Firebase, в котором можно подписываться на изменения firebase.google.com/docs/database

Можно написать врапер над RxJS rxjs-dev.firebaseapp.com/guide/overview. Уже есть реактивность, надо просто где-то накапливать стейт. Так, например, делает undux.org

Логакс, вдохновленный CRDT logux.io


Одно точно могу сказать: стоит выйти из зоны комфорта в виде Redux и попробовать какой-то альтернативный стейт-менеджер. Если не на реальном проекте, то хотя бы на пет. Возможно ваша жизнь никогда не будет прежней, как моя после Эффектора dev.to/lessmess/why-i…