Я еще не использовал Mobx и для знакомства с ним хочу сделать небольшой проект. Документацию почитал и по Mobx и по mobx-state-tree. И есть одно непонимание.
В документации пишут:
"Each domain object should be expressed using its own class (or constructor function). It is recommended to store your data in denormalized form. There is no need to treat your client-side application state as some kind of database. Real references, cyclic data structures and instance methods are powerful concepts in JavaScript."
То есть прямая рекомендация не использовать нормализацию данных. Но не дублировать их, а пользоваться ссылками. Мол, это мощная концепция. А как тогда удалять данные? Я, допустим, хочу удалить юзера, но я не представляю сколько объектов в сторе ссылаются на этого юзера. Значит после удаления юзер останется, на него будут ссылаться какие-то элементы и он продолжит "жизнь" в приложении.
Причем, на этой же странице написано, что mobx-state-tree - более продуманное решение. А в mobx-state-tree данные по сути нормализованы, types.reference как бы намекает на это.