Путаница между mobx-state-tree и mobx-keystone. Когда какой использовать?

Оба рекомендуются на официальной странице Mobx, если кто-то хочет упрямый способ использования mobx для управления состоянием.

На основе этих (1, 2), keystone кажется улучшением дерево состояний. Имея все, что есть в дереве состояний, и многое другое. Я нигде не мог найти ничего, что есть в дереве состояний, чего нет у краеугольного камня.

сравнение

Я вижу, что краеугольный камень далеко не такой зрелый, как дерево состояний. Это, наверное, главное, что мешает мне выбрать его вместо этого. Какие еще хорошие моменты для дерева состояний по сравнению с трапецеидальным искажением?

P.S. Он будет использоваться в приложении React.


person ZenVentzi    schedule 28.11.2020    source источник


Ответы (3)


Сначала спросите себя, действительно ли вам нужны эти библиотеки, потому что вы можете действительно далеко продвинуться, используя только mobx и старые добрые шаблоны ООП. В официальных документах есть пример магазин, который выполняет автоматическое сохранение и сериализацию.

Сказав это, я бы выбрал mobx-keystone. Typescript работает прямо из коробки, и вы можете использовать классы для создания своего магазина, что, по-моему, проще, чем магазины MST. Кроме того, автор очень отзывчивый, и он также является автором библиотеки mobx.

person Ivan V.    schedule 28.11.2020

mobx-keystone супер круто. После использования обеих библиотек какое-то время я бы рекомендовал использовать их более mobx-state-tree во всех возможных случаях. Это гораздо более интуитивно понятно и легче учиться. Это сэкономило много времени для моего проекта (переключение с zustand на jotai на mobx-keystone, IMO каждый следующий немного лучше предыдущего в моем случае использования)

person dzcpy    schedule 03.05.2021

После обширного тестирования / чтения исходного кода / игры с набором тестов кажется, что mobx-keystone обеспечивает более надежную работу разработчика с Typescript, а также имеет достаточно аварийных штрихов, если вам нужно работать с кодом, чувствительным к производительности. Я бы решил небольшую (но достаточно сложную) проблему с обеими библиотеками, чтобы судить сами.

person mindreframer    schedule 18.03.2021