Выделение ядра у фронта на реакте, какие есть варианты реализации?
Взываю к помощи, т.к. сам не могу придумать более менее красивого решения.
Дано: монолит фронт на react.js
Задача: разделить приложение на ядро и кастомную часть.
Под ядром подразумевается базовый функционал, а кастом это то, что может быть актуально в рамках конкретной организации. Например, есть форма с полями и кнопка, которая вызывает апи какой-нибудь ИС внутри компании и заполняет форму на основании полученных данных, так вот в ядре никакого упоминания об этой кнопке и о апи не должно быть, соответственно должен быть некий кастом модуль, который каким-то образом эту кнопку добавит не меняя исходного кода ядра, т.е. у ядра должно быть некое апи, через которое можно подменить компоненту ядра на кастомную.
Для бэка на java вкратце у меня такое решение, выносим все интерфейсы в отдельный модуль апи, при разработке кастома добавляем апи в зависимость и реализовываем интерфейсы, запускаем ядро с добавлением кастом модуля в classpath, если ядро находит кастомную реализацию, то юзает ее, если нет, то берется реализация из ядра, это если очень кратко.
Для фронта никак не могу придумать подобное решение из-за нехватки опыта, я не прошу вас сделать работу архитектора, хотя бы просто накидайте верхнеуровнево варианты реализации, если такое вообще возможно, спасибо.
Алексей Уколов, есть, но надо же как то это красиво завернуть, не прокидывать же пропсы из корня во все дочки по цепочке, смотрю в сторону контекста в который кладется объект, в котором ключи это названия компонент, значения это сами компоненты (понятно что на самом деле там по сложнее структура будет), все компоненты завернуть во врапперы, внутри которых будет либо браться компонента из контекста, если ее там нет то стоковая, что то типа того, не проверял еще правда как это будет работать, просто думал может у кого то есть опыт подобного проектирования.
WbICHA, вкратце, есть приложение, нужно сделать так чтобы специфичный код был отдельным модулем, а базовый можно было продать как коробку и чтобы клиент мог сам дописывать приложение, но при этом была возможность обновления ядра поставщиком, у меня нет подобного опыта, поэтому не знаю как лучше это спроектировать