Лучшая практика использования @inject в mobx-реагировать?
Я знаю, что использование @observer на более мелких компонентах хорошо для производительности. Также целесообразно использовать @inject для максимально возможного количества компонентов? Очевидно, что таким образом легче получить доступ к используемым реквизитам, чем проходить через родительские компоненты. В то же время становится также трудно создавать презентационные компоненты. Почти все компоненты напрямую связаны с магазинами Mobx. Но даже если мы не используем @inject, компоненты все равно могут использовать @observer.
Итак, мои вопросы:
Как создать презентационные компоненты в Mobx? Или, может быть, нет необходимости в презентационных компонентах в Mobx.
Как лучше всего использовать @inject? Или какие компоненты целесообразно использовать с @inject?
Любые предложения приветствуются.
1 ответ
Вопрос 1:
Вы создаете презентационные компоненты так же, как в Redux. Просто дайте этим компонентам реквизит извне и используйте только @observer на них.
Нет необходимости использовать презентационные компоненты. Даже в Redux нет необходимости. Это зависит только от того, как вы можете достичь своих архитектурных целей / нефункциональных требований.
Вам нужно знать и решать, нужны ли вам презентационные компоненты без @observer. Это может быть в том случае, если вы, например, хотите повторно использовать компоненты представления в приложении, которое не использует mobx. Тогда у вас возникнут проблемы, когда вы аннотируете каждый компонент с помощью @observer.
Вопрос 2:
Используйте @inject и @observer для компонентов контейнера и просто передайте реквизиты вашим презентационным компонентам, которые аннотированы только @observer.