Size: a a a

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

2021 April 20

a

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

a

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

AI

Artsiom Ivanov in Reatom — стейт-менеджер
при беглом чтении сильно застопило, что handle((value) => state = state + value) возвращает новый state но тут важно только state = state + value

имхо, очень странный АПИ, мне вот предыдущая версия нравилась (
источник

a

artalar in Reatom — стейт-менеджер
Эта апишка намного мощнее, в доке часть фишек не расписана
источник

a

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


state = $(handle(state, doSome, value => value))

Где первый аргумент handle - state это дефолтное значение если сейчас диспатчится не doSome
источник

AI

Artsiom Ivanov in Reatom — стейт-менеджер
я про ментальную модель происходящего
action - ок
derived atom - ок
atom with handle - сложно понять сходу

после быстрого чтения доки вся картинка в голове не появляется (
источник

a

artalar in Reatom — стейт-менеджер
=(

Мб handle переименовать во что-то?
Разделить их по отдельным on как в первой версии нельзя (не стоит),  потому что теперь есть диспатч пачки экшенов (батча) и ты можешь в редком случае захотеть иметь эту информацию, что сейчас обрабатываются одновременно несколько экшенов или атомов, а не каждый отдельно и единично
источник

AI

Artsiom Ivanov in Reatom — стейт-менеджер
я хз как лучше, что было сложно:
- зачем $ вокруг handle
- почему handle что-то возвращает
- конструкция c присваиванием в ретурне вообще не парсится `(value) => state = state + value`

мне бы было легче, если будет более как-то более декларативно: payload = $(action.doMagic())
источник

a

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

AI

Artsiom Ivanov in Reatom — стейт-менеджер
по мне state как результат combineLatest - выглядит ок
источник

AI

Artsiom Ivanov in Reatom — стейт-менеджер
я не хочу думать о том, что мне надо сделать со стейтом, если произошел экшен
я хочу понимать как формируется стейт из данных, да хочу стримы, как было раньше (
источник

a

artalar in Reatom — стейт-менеджер
Ну это будет гора операторов =/
источник

a

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

a

artalar in Reatom — стейт-менеджер
было
const firstName = declareAtom('@firstName', 'John', handle =>
     handle(firstNameUpdated, (_, name) => name),
   )
источник

a

artalar in Reatom — стейт-менеджер
стало
const firstName = declareAtom(($, state = 'John') => {
     $(firstNameUpdated.handle(name => (state = name)))
     return state
   }, `@firstName`)
источник

EM

Eugene Maltsev in Reatom — стейт-менеджер
Ток попробовал/разобрался с  первой версией и вот уже все переписывать надо на вторую?
источник

a

artalar in Reatom — стейт-менеджер
Если сайд бай сайд смотреть - практически ничего не поменялось
источник

a

artalar in Reatom — стейт-менеджер
Вторая окончательно релизнется не раньше мая, мб чуть позже
источник

a

artalar in Reatom — стейт-менеджер
И в ней будут улучшения, но концептуально многое останется так же
источник

EM

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