MobX с React лучшие практики с наблюдателем - PullRequest
1 голос
/ 02 февраля 2020

На самом деле я не сталкиваюсь с проблемой, скорее, мне интересно, как лучше использовать mobx с реагировать. Итак, вот моя ситуация:

Я довольно плохо знаком с mobx, но у меня многолетний опыт использования react (в основном с redux). Мой новый проект использует mobx-state-tree наряду с mobx-react-lite для соединения моих компонентов с функцией observer, обертывающей компонент. Я установил root магазин с несколькими магазинами в нем. Я действительно энтузиаст c об этом сейчас, но я хотел бы дать несколько рекомендаций:

Должен ли я использовать logi для контейнеров c, что довольно часто встречается в redux, что означает, что я должен подключать только «контейнер» Компонент, который будет обрабатывать связь с моими магазинами и распространять ее своим детям? Или я должен напрямую подключить к наблюдателю столько компонентов, которые должны быть обеспечены данными из хранилища?

Является ли второй вариант более технически оптимизированным? Это все еще хорошая идея в соответствии с философией React? Каково ваше мнение по этому вопросу?

Любой ответ будет очень признателен

1 Ответ

1 голос
/ 17 февраля 2020

Технически, вам не нужна концепция контейнера / презентации. Вы можете использовать context, localStore или globalStore, но это не означает, что контейнер / презентация иногда бесполезны.

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

Это очень распространенный шаблон, чтобы видеть shouldComponentUpdate с громоздкими проверками, чтобы избежать ненужных визуализаций. С MobX это вообще не нужно.

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

Шаблоны реагирующих компонентов также меняются со временем.

Используйте то, что вам нужно, и поймите прямо сейчас. Если это не имеет значения через 5 лет, не тратьте больше 5 минут, чтобы подумать об этом. Вы всегда можете сделать забавный рефакторинг.

Дополнительная информация:

https://mobx.js.org/README.html

https://mobx-react.js.org

...