Size: a a a

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

2021 March 09

a

artalar in Reatom — стейт-менеджер
Не самый вкратчевый апи, но достаточно удобный, очевидный и однородный к остальному апи, тайпсейф.
источник

a

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

a

artalar in Reatom — стейт-менеджер
Ну и :)
источник
2021 March 10

M

Maksim Sharov in Reatom — стейт-менеджер
artalar
Я скоро обновлю core, там добавиться возможность прям в атоме описывать сайд-эффекты, возвращая их из хендлера экшена прямо в атоме
1. Экшны можно будет делать асинхронными?
2. Не теряется ли от этого чистота атома (он же редьюсер), который является предсказуемым способ изменения стора, и  усложняется тестирование? Возможно, я мыслю категориями редакса
источник

a

artalar in Reatom — стейт-менеджер
Maksim Sharov
1. Экшны можно будет делать асинхронными?
2. Не теряется ли от этого чистота атома (он же редьюсер), который является предсказуемым способ изменения стора, и  усложняется тестирование? Возможно, я мыслю категориями редакса
1) В смысле?
2) Нет, тк возвращенная из хендлера функция добавляется в отдельную очереь effects, которую вызывает уже сам стор.
источник

M

Maksim Sharov in Reatom — стейт-менеджер
artalar
1) В смысле?
2) Нет, тк возвращенная из хендлера функция добавляется в отдельную очереь effects, которую вызывает уже сам стор.
источник

a

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

M

Maksim Sharov in Reatom — стейт-менеджер
Что значит? Асинхронные действия переходят в атомы?
источник

a

artalar in Reatom — стейт-менеджер
Maksim Sharov
Что значит? Асинхронные действия переходят в атомы?
Ну по ссылке пример как можно описывать экшены, что бы в них были сайд эффекты. Это то как в первой версии оно работало, только теперь можно вывести тип результата эффекта.

А тред начался с того что теперь эффекты можно описывать в атомах, да. Это не универсальная штука, но удобная для многих кейсов.
Очень мне нравится что всю работу со стейтом атома можно описать теперь в этом же атоме, даже асинхронщину.
Хотя могут быть кейсы, когда удобнее отдельно описывать процессинг, особенно нескольких атомов. В общем от задачи зависит
источник

И

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

IR

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

А тред начался с того что теперь эффекты можно описывать в атомах, да. Это не универсальная штука, но удобная для многих кейсов.
Очень мне нравится что всю работу со стейтом атома можно описать теперь в этом же атоме, даже асинхронщину.
Хотя могут быть кейсы, когда удобнее отдельно описывать процессинг, особенно нескольких атомов. В общем от задачи зависит
Как-то неоднозначно, тенденция ведь наоборот, к отделению сайд-эффектов от мух с котлетами
источник

IR

Ingrid Raines in Reatom — стейт-менеджер
Не слишком ли перемешаются они с чистыми функциями?
источник

IR

Ingrid Raines in Reatom — стейт-менеджер
Т.е эффекты с действительными изменением состояния
источник

IR

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

IR

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

IR

Ingrid Raines in Reatom — стейт-менеджер
( ничего срочного-важного офк в этих войсах нет )
источник

a

artalar in Reatom — стейт-менеджер
Ingrid Raines
Не слишком ли перемешаются они с чистыми функциями?
Это всегда от задачи зависит. Если мы какой-то ресурс сам в себе описываем - лучше что бы все связанные с ним вычисления были в нем.
Если у нас данные участвуют в каких-то других общих процессах - нужно разделить.
Не бывает единого лучшего решения. А я лишь даю очень базовую, но мощную апишку что бы можно было сделать и так и так.
источник

a

artalar in Reatom — стейт-менеджер
Ingrid Raines
Как-то неоднозначно, тенденция ведь наоборот, к отделению сайд-эффектов от мух с котлетами
В новом реатоме из коробки есть батчинг (в диспатч можно передать массив экшенов) и он сделать с макс производительностью, без излишних обходов, как в редаксе (из-за этого там целая пачка проблем).

Так же, есть шорткат на logic-less атомы - если передать в declareAtom только initialState, без редусера с хендлингом экшенов, то он создастся автоматом и в атом будет добавлен метод update (экшен). Таким образом мы в атоме описываем только тип данных и позможность на них подписаться, а изменением этих данных можем управлять в отдельном контроллере.

Те можно описать какой-то отдельный асинхронный метод, который будет апдейтить пачку атомов батчем - вот вам и разделение.

Ну те я постарался учесть оба подхода)
источник

a

artalar in Reatom — стейт-менеджер
artalar
В новом реатоме из коробки есть батчинг (в диспатч можно передать массив экшенов) и он сделать с макс производительностью, без излишних обходов, как в редаксе (из-за этого там целая пачка проблем).

Так же, есть шорткат на logic-less атомы - если передать в declareAtom только initialState, без редусера с хендлингом экшенов, то он создастся автоматом и в атом будет добавлен метод update (экшен). Таким образом мы в атоме описываем только тип данных и позможность на них подписаться, а изменением этих данных можем управлять в отдельном контроллере.

Те можно описать какой-то отдельный асинхронный метод, который будет апдейтить пачку атомов батчем - вот вам и разделение.

Ну те я постарался учесть оба подхода)
Примерно так выглядит
источник

a

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