Comments 12
Библиотеке mobx в этом году уже 10 лет, а её всё продолжают переизобретать...
Это да, а геттерам и сеттерам так вообще уже 15 лет
Покажите пожалуйста как MobX может работать как локальный стейт?
Не могу понять, везде примеры для глобального стейта
Покажите пожалуйста как MobX может работать как локальный стейт?
Вот так

Ссылка - https://stackblitz.com/edit/vitejs-vite-ksbx6s6e?file=src%2FApp.tsx&terminal=dev
то есть во-первых вы создали стор всё равно за пределами компонента(создав внутри компонента экземпляр стора), во-вторых весь компонент будет перерисован при изменении значения стора, в-третьих и все дочерние компоненты тоже будут перерисованы, если их не обернуть в мемо? вдобавок нарисовалось две обёртки, а ни о какой точечной перерисовке jsx речи не идёт. ну почти то же самое, ага
то есть во-первых вы создали стор всё равно за пределами компонента(создав внутри компонента экземпляр стора),
и? Разумеется за пределами, зачем код компонента превращать в месиво, view это view, state это state.
во-вторых весь компонент будет перерисован при изменении значения стора
1) Только если изменится значение, которые читает компонент.
2) И? Так работает реакт, если что-то, от чего зависит компонент изменяется, то он как бы обновляется.
в-третьих и все дочерние компоненты тоже будут перерисованы, если их не обернуть в мемо?
При использовании MobX, компоненты заворачиваются в observer, и они не будут перерисованы если реально в них ничего не изменилось.
вдобавок нарисовалось две обёртки, а ни о какой точечной перерисовке jsx речи не идёт. ну почти то же самое, ага
Да, без точечной перерисовки jsx. Однако, в реальной жизни проблем тут нет, на глаз разницу не заметить. А в использовании MobX гораздо удобнее.
скорее вот уже 10 лет пользователи mobX старательно воротят нос от чего-то другого)
скорее вот уже 10 лет пользователи mobX старательно воротят нос от чего-то другого)
Расшифруйте свою мысль пожалуйста
Не то что бы я прям ворочу нос от сигналов, но вот читаю сигнальный TFM и не покидает странное ощущение, что абсолютно всё это я уже где-то видел...
Да, признаю, взаимодействие с реактом несколько иное, но запилить аналогичный useMobx() вместо observer было бы несложно.
А так, да, попробовав стейт-манагер без бойлерплейта и каких-то странных "ФП-шных" конструкций, который ещё и хорошо ложится на ООП, уже глядя на всякие редуксы и зюстанды, начинаешь думать "зачем так сложно"
Используйте solidjs и не страдайте
Еще проще эта задача решается с помощью Fusor. Сигналы/Observables также просто можно интегрировать во Fusor на событие mount
.

https://codesandbox.io/p/sandbox/jsx-webpack-forked-wrxy7w?file=%2Fsrc%2Fapp.jsx%3A5%2C18
signals в качестве альтернативы useState в React