Нужны предложения по разделению компонентов на модули и упаковке того, что нужно - PullRequest
0 голосов
/ 07 января 2019

У меня есть гигантская кодовая база для моего проекта в ReactJS прямо сейчас, которая включает в себя около 20 модулей в Navbar, что занимает до 25 МБ, когда я его объединяю. Сейчас есть несколько клиентов, которые я поставляю один и тот же код, но все клиенты не хотят, чтобы все модули из панели навигации, некоторые хотят 3, некоторые хотят 4, а некоторые хотят 12 из них. Теперь мне нужно связать весь код с опциями, скрывающимися в панели навигации, и отправить весь код всего за 2 или 3 модуля.

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

Еще одна вещь, о которой я думаю, это то, что в некоторых случаях мои клиенты могут попросить меня добавить еще один модуль к этому коду, не меняя ничего в поставляемом, например, просто модули пакета 2 и отправить его, и его можно загрузить без какого-либо кода. менять. Пользователь может даже разработать собственный компонент, который также может быть загружен в пользовательский интерфейс.

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

Заранее спасибо.

1 Ответ

0 голосов
/ 07 января 2019

Вы можете использовать расщепление кода, чтобы решить вашу первую проблему. Более новая версия React (16.6) обеспечивает React.lazy() для динамического импорта. Существуют и другие известные решения, в том числе реагирующая загрузка , CommonsChunkPlugin или SplitChunksPlugin (в зависимости от версии используемый вами веб-пакет).

Для вашей второй проблемы динамического добавления модулей у меня нет никакого полезного решения. Если новым модулям требуется доступ к ресурсу данных в существующем коде (данные редукции, логика маршрутизации или состояние какого-либо компонента), они должны быть включены и объединены вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...