Лучшая практика использования @inject в mobx-реагировать?

Я знаю, что использование @observer на более мелких компонентах хорошо для производительности. Также целесообразно использовать @inject для максимально возможного количества компонентов? Очевидно, что таким образом легче получить доступ к используемым реквизитам, чем проходить через родительские компоненты. В то же время становится также трудно создавать презентационные компоненты. Почти все компоненты напрямую связаны с магазинами Mobx. Но даже если мы не используем @inject, компоненты все равно могут использовать @observer.

Итак, мои вопросы:

  1. Как создать презентационные компоненты в Mobx? Или, может быть, нет необходимости в презентационных компонентах в Mobx.

  2. Как лучше всего использовать @inject? Или какие компоненты целесообразно использовать с @inject?

Любые предложения приветствуются.

1 ответ

Вопрос 1:

Вы создаете презентационные компоненты так же, как в Redux. Просто дайте этим компонентам реквизит извне и используйте только @observer на них.

Нет необходимости использовать презентационные компоненты. Даже в Redux нет необходимости. Это зависит только от того, как вы можете достичь своих архитектурных целей / нефункциональных требований.

Вам нужно знать и решать, нужны ли вам презентационные компоненты без @observer. Это может быть в том случае, если вы, например, хотите повторно использовать компоненты представления в приложении, которое не использует mobx. Тогда у вас возникнут проблемы, когда вы аннотируете каждый компонент с помощью @observer.

Вопрос 2:

Используйте @inject и @observer для компонентов контейнера и просто передайте реквизиты вашим презентационным компонентам, которые аннотированы только @observer.

Другие вопросы по тегам