Size: a a a

Reatom — стейт-менеджер

2020 July 23

a

artalar in Reatom — стейт-менеджер
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
artalar
YouTube
Tver.io State Management Talks
"Наденьте на хеллоуин костюм shared mutable state и вы напугаете кучу фронтедеров!"

Зачем нужны стейт-менеджеры на фронтенде, что за стейт хранится в них и где место бизнес- и не только логике, разберем на Tver.io State Management Talks.

# Программа

Участники:

- Сергей Сова — Frontend Lead, Architect в REDMADROBOT, developer advocate и контрибьютор библиотеки Effector
(https://twitter.com/_sergeysova)
- Павел Черторогов — архитектор информационных систем в ps.kz,
GraphQL-ниндзя, автор библиотеки graphql-compose
(https://twitter.com/nodkz)
- Артём Арутюнян — техлид в Калуга Астрал, автор Reatom
(https://twitter.com/artalar_dev)
- Павел Малышев — сооснователь Mustlab, популяризатор и эксперт Svelte
(https://twitter.com/PaulMaly)
- Александр Шушунов, модератор и ведущий дискуссии
(https://twitter.com/AShushunov)

Список тем:

- Зачем нужны стейт-менеджеры?
- Что за стейт хранится в стейт-менеджерах?
- Какая логика должна быть описана в стейт-менеджерах?
- Если мы описываем логику в стейт-менеджере, то она зависит…
о нифига) На меня отсылка была в конце 😂
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
@artalar кстати, твои слова под счетчики на кол-во подписок в reatom вернули меня опять в вопросу об удалении “устаревших данных” в нормализованом сторе.  Можно ли как то каждый item нормализованного стора хранить в своем атоме…
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
хотя звучит как бред)
источник

a

artalar in Reatom — стейт-менеджер
Ilya Agarkov
о нифига) На меня отсылка была в конце 😂
Ну кейс не тривиальный и интересный)
источник

a

artalar in Reatom — стейт-менеджер
Ilya Agarkov
@artalar кстати, твои слова под счетчики на кол-во подписок в reatom вернули меня опять в вопросу об удалении “устаревших данных” в нормализованом сторе.  Можно ли как то каждый item нормализованного стора хранить в своем атоме…
Сходу не готов сказать, надо думать
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
artalar
Ну кейс не тривиальный и интересный)
кстати в hot-loader вроде имеет какой то свой хак для useEffect с передачей в качестве зависимости  строки “hot”. Я читал по диагонали, но возможно это что-то что как раз нужно
источник

OH

One Hero in Reatom — стейт-менеджер
Nikita Stenin
В случае с реактом, то надо еще разобраться в том как работает react-hot-loader с хуками. Вроде как, там тоже не все так просто. А там возможно и придумать решение для реатома
его вроде вводят в deprecated mode и переезжают на React Fast Refresh
источник

OH

One Hero in Reatom — стейт-менеджер
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
One Hero
его вроде вводят в deprecated mode и переезжают на React Fast Refresh
Надо глянуть. Спасибо
источник

OH

One Hero in Reatom — стейт-менеджер
Nikita Stenin
Надо глянуть. Спасибо
от автора статейка занятная, все очень запущено (на 2018 год)
https://habr.com/ru/post/433122/
источник
2020 July 24

NS

Nikita Stenin in Reatom — стейт-менеджер
Привет. Я тут вчера после дисскусии решил попробовать сделать обертку над history и понял, что возможно стоит подумать над более умном механизме подписок на экшены или апи для подключения разных штук, типа дев тулзов или саг. Собственно проблема в том, что порядок подписок очень не предсказуемый. Вот я накидал пример, где можно увидеть разный порядок вызова, в зависимости от типа подписки. https://codesandbox.io/s/eager-bohr-dksei?file=/src/index.ts чтобы посмотреть результат в консоли, открыть лучше эту ссылку https://dksei.csb.app/
источник

a

artalar in Reatom — стейт-менеджер
Nikita Stenin
Привет. Я тут вчера после дисскусии решил попробовать сделать обертку над history и понял, что возможно стоит подумать над более умном механизме подписок на экшены или апи для подключения разных штук, типа дев тулзов или саг. Собственно проблема в том, что порядок подписок очень не предсказуемый. Вот я накидал пример, где можно увидеть разный порядок вызова, в зависимости от типа подписки. https://codesandbox.io/s/eager-bohr-dksei?file=/src/index.ts чтобы посмотреть результат в консоли, открыть лучше эту ссылку https://dksei.csb.app/
Нуу это достаточно общая проблема, зомби-чайлды в реакте из-за этого, считай.

Но в рамках хистори какая с этим проблема - не понял)
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
artalar
Нуу это достаточно общая проблема, зомби-чайлды в реакте из-за этого, считай.

Но в рамках хистори какая с этим проблема - не понял)
Ну когда я подключил redux-devtools и синхронизацию в обе стороны history, то в дев тулзах я увидел не ожидаемый порядок вызова экшенов. Я уже сталкивался с этим, когда подключал дев тулзы и редакс обсервабл, но тогда я просто поменял порядок подключения и не парился. Хочется иметь более предсказуемое поведение. Чтобы например с использованием history, можно было корректно перемещаться во времени
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
Я тут накидал черновой вариант, чтобы хотя бы добиться одинакое поведение для разных способов подписки на экшен
источник

a

artalar in Reatom — стейт-менеджер
Nikita Stenin
Я тут накидал черновой вариант, чтобы хотя бы добиться одинакое поведение для разных способов подписки на экшен
Это по перфу плохо
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
artalar
Это по перфу плохо
Ну поэтому я и сказал, что черновой. Пока ничего больше не придумал
источник

a

artalar in Reatom — стейт-менеджер
Nikita Stenin
Ну поэтому я и сказал, что черновой. Пока ничего больше не придумал
В мобыксе это пофикшено как-то, но я не смотрел как
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
artalar
В мобыксе это пофикшено как-то, но я не смотрел как
Попробую посмотреть.
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
@artalar вот кстати еще один кейс, который прям не френдли на мой взгляд. В большом приложение понять почему будет именно так не очень просто мне кажется. https://codesandbox.io/s/reatom-subscriptions-fy9bh
источник