Когда то существовало расширение autopager — подгрузка страниц на любом сайте. Поищите, возможно есть сейчас какие нибудь аналоги.
Для отметки просмотренных я использую Stylus
Что бы что то изменилось в observable перед отработкой useEffect должно произошло другое асинхронное событие. Вы можете продемонстрировать такое поведение?
К сожалению невозможно охватить все сразу. Да, для описания удобного кручения иммутабельного состояния ушла целая статья, про это собственно я и хотел написать, но возможно стоило уделить внимание и тем вопросам что вы озвучили. Думаю в будущем будет продолжение, а пока с остальным функционалам можно ознакомиться в репозитории https://github.com/simmor-store/simmor
Наверните сверху на _stateHistory какой-нибудь Immutable.js
Зачем сверху наворачивать Immutable.js если с самого начала можно использовать имутабельность? Плюсы это тема для отдельной статьи, что то вы можете почитать например в документации Redux.
Логика для обмазывания этим других классов, чтоб каждое изменение состояния дёргало бы updateState — точно такая же, как и у вас.
Статья не про мутабельность vs имутабельность, это отдельная большая тема.
Как я написал в начале, это мое личное предпочтение, на основе моего опыта. Например у вас в _stateHistory хранятся полные копии всех измененных состояний, в случае с иммутабельностью части состояний могли бы переиспользоваться.
Когда то существовало расширение autopager — подгрузка страниц на любом сайте. Поищите, возможно есть сейчас какие нибудь аналоги.
Для отметки просмотренных я использую Stylus
Расширение было создано для удобства возможных пользователь скрипта, а так конечно юзерскрипт всем устраивал.
Это пара строчек кода
Хоть код и авторский, но добавил вашу правку, спасибо.
Что бы что то изменилось в observable перед отработкой useEffect должно произошло другое асинхронное событие. Вы можете продемонстрировать такое поведение?
Можно посмотреть на другую реализацию https://github.com/LeetCode-OpenSource/rxjs-hooks/blob/master/src/use-observable.ts
Этого достаточно просто достичь объявлением одного
Observable
С возможным решением можно ознакомится в статье https://habr.com/ru/post/483526/
Будет выглядеть так:
Большой объем кода только из за демонстрации подхода, если обернуть все это в библиотеку получится вполне себе компактное решение.
Тут речь не про цену подключения, а про использования Redux ради возможности использовать extension.
Вроде все на месте.
subscribe возвращает функцию
которая возвращается из useEffect
С mobx-state-tree я не работал, но когда искал варианты, такое описание стора меня оттолкнуло.
К сожалению невозможно охватить все сразу. Да, для описания удобного кручения иммутабельного состояния ушла целая статья, про это собственно я и хотел написать, но возможно стоило уделить внимание и тем вопросам что вы озвучили. Думаю в будущем будет продолжение, а пока с остальным функционалам можно ознакомиться в репозитории https://github.com/simmor-store/simmor
Зачем сверху наворачивать Immutable.js если с самого начала можно использовать имутабельность? Плюсы это тема для отдельной статьи, что то вы можете почитать например в документации Redux.
удалено
Статья не про мутабельность vs имутабельность, это отдельная большая тема.
Как я написал в начале, это мое личное предпочтение, на основе моего опыта. Например у вас в _stateHistory хранятся полные копии всех измененных состояний, в случае с иммутабельностью части состояний могли бы переиспользоваться.
Смысл в том что Immer это просто утилита
и
Концептуально ничем не отличаются.
Тем, что данные из стора вы можете использовать в любом компоненте. Для примера можно посмотреть другие вариантами использования https://codesandbox.io/s/github/simmor-store/react-simmor/tree/master/examples
К каким проблемам может привести его использование в контексте текущего примера?
Есть еще полностью бесплатный сайт
http://ru.brainexer.com/
Haskell как раз используется для примеров потому что есть сахар, а так конечно, Maybe и прочие абстракции можно использовать в любом языке.
https://hackage.haskell.org/package/extensible-effects
http://okmij.org/ftp/Haskell/extensible/exteff.pdf