Size: a a a

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

2021 February 28

IR

Ingrid Raines in Reatom — стейт-менеджер
artalar
Функция в атоме на каждый диспатч перевызывается. Если это диспатч указанного акшена - будет вызвана реакция в которой мы можем в тч поменять стейт. Точно так же как в кейсе свитча класического редусера
Там immer что ли под капотом? 🤔
источник

IR

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

ДК

Дмитрий К in Reatom — стейт-менеджер
@artalar кстати, ты вроде бы забыл упомянуть про сборку мусора - это тоже важная функция SM. Без сборки мусора можно легко выгрузить в память всю базу данных за пару часов использования.
источник

a

artalar in Reatom — стейт-менеджер
Дмитрий К
@artalar кстати, ты вроде бы забыл упомянуть про сборку мусора - это тоже важная функция SM. Без сборки мусора можно легко выгрузить в память всю базу данных за пару часов использования.
Ну я в конце про теплые обсерваблы сказал, ты об этом?
источник

ДК

Дмитрий К in Reatom — стейт-менеджер
Отчасти, тёплые обсерваблы - это один из способов сборки мусора. Но вообще есть разные стратегии: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
источник

a

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

a

artalar in Reatom — стейт-менеджер
Дмитрий К
@artalar кстати, ты вроде бы забыл упомянуть про сборку мусора - это тоже важная функция SM. Без сборки мусора можно легко выгрузить в память всю базу данных за пару часов использования.
Я бы это не конкретно про кеш сказал, а вообще тк трекинг зависимостей автоматический, мы получаем из этого и resource management, который даёт хуки ЖЦ в общем, через которые можно и кеш чистить / перезапрашивать
источник

a

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

a

artalar in Reatom — стейт-менеджер
artalar
Норм бы так было?
Упс, а тип возвращаемого значения возвращаемого колбека реакции и не указать, потому что он выводится из переменной state
источник

a

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

M

Maksim Sharov in Reatom — стейт-менеджер
@artalar спасибо за работу. Узнал об инструменте и перевожу пару своих пет-проектов на реатом, интересный опыт. На воркшопе упоминал про новую версию и упрощение работы с асинхронными действиями. Проект не заброшен,оьновления планируются? Вижу, что уже полгода не было коммитов в репозиторий.
источник

a

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

M

Maksim Sharov in Reatom — стейт-менеджер
artalar
Привет, сейчас идет активная разработка второй версии, прогресс можно наблюдать в v2 бранче. Вчера запаблишил 4 альфу, в которой пофикшен последний известный(!) баг и одновременно упростилась реализация батчинга, но повысилась его эффективность
👍
источник
2021 March 01

a

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

a

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

a

artalar in Reatom — стейт-менеджер
Из этого, наверное, можно сделать какой-то Resource (принимает колбек для фетча ток) и поставлять из коробки

const fetchData = Action()
 const dataAtom = Atom({ isLoading: false, data: 0 }, ($, state) => {
   $(fetchData, () => {
     state = { ...state, isLoading: true }
     return store =>
       Promise.resolve({
         isLoading: false,
         data: store.getState(dataAtom)!.data + 1,
       })
   })

   return state
 })
источник

a

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

V

Vitaly in Reatom — стейт-менеджер
Вспомнил где подобное видел
Redux loop напоминает
источник

a

artalar in Reatom — стейт-менеджер
Vitaly
Вспомнил где подобное видел
Redux loop напоминает
Был какой-то хелпер к редаксу, который позволял из редусера возвращать санк, но это не оч удобно тем что нельзя и санк вернуть и данные обновить. В loop и вот предложенном варианте можно и то и то
источник

EC

Evgeny Cherkasov in Reatom — стейт-менеджер
Привет

Подскажите, пожалуйста, есть ли разница и в чем?

const picture = useAtom(collectionAtom, ({ data }) => data.picture, []);

const { data: { picture } } = useAtom(collectionAtom);

Нужна только переменная picture
источник