, поэтому я работаю над переводом приложения моей компании на микро-интерфейс.Мы следуем стандарту, описанному в https://micro -frontends.org / .Несмотря на то, что все в настоящее время используется React, мы обертываем вещи веб-компонентами, чтобы в будущем у нас была свобода и гибкость, чтобы не зависеть от фреймворка.У нас есть рабочая архитектура, и она работает прекрасно.Мы даже создали необычный слой совместимости поверх спецификации веб-компонента, который позволяет нам передавать реквизиты, подобные React, веб-компонентам, включая объекты, массивы и даже функции.Это позволяет значительно улучшить взаимодействие между ними.
Основная проблема, которую мы сейчас имеем, - это дублирование библиотек.Мы являемся магазином React, поэтому, несмотря на то, что у нас есть этот независимый от фреймворка подход, все использует React.Хотя этот новый подход дает нам возможность индивидуально обновлять части нашего приложения до более новой версии React (наконец-то), нам все еще не нравится идея такого большого дублирования библиотеки React.
Чтобы поставить еев перспективе, даже Gzipped, React / ReactDOM более 40 КБ.Это супер крошечный в отдельности, но в увеличенном масштабе он начинает занимать все большую пропускную способность.С точки зрения оперативной памяти это меньше проблем, около 130 КБ для этих библиотек, и учитывая объем оперативной памяти большинства устройств, сейчас это не так уж и много.
Но, конечно, мы хотим, чтобы все было максимально оптимизировано и оптимизированонасколько это возможно.Поэтому я надеюсь, что кто-то может предложить способ, с помощью которого приложения для микро-интерфейса (те, которые обернуты в веб-компонент) могут получить React и другие библиотеки из родительского приложения.
Вы должны знать, что JavaScript родительского приложениязагружается до микро-интерфейсов.Каждый микро-интерфейс загружается через тег <script>
.Наконец, в настоящее время мы НЕ используем Shadow DOM - компромисс, который мы сделали, чтобы извлечь выгоду из того, как мы переносим существующий код в новую архитектуру микро-интерфейса.