Вы можете выставлять веб-компоненты из каждого вашего приложения и объединять / использовать их в своем главном SPA. Веб-компоненты поддерживаются всеми браузерами, а все ведущие фермерские системы SAP (такие как angular, ember, реагируют, vue) поддерживают веб-компоненты. Таким образом, вы не привязываетесь к какой-либо отдельной структуре SPA и можете возобновить компоненты в любом месте.

есть несколько веб-приложений, которые мы хотим представить в виде одностраничного приложения. Мы ищем архитектуру / структуру микро-интерфейса. На наш взгляд, это наши варианты реализации:

Использование фреймворка с открытым исходным кодом для одного спа:https://github.com/CanopyTax/single-spaИспользование Iframes (дружественных Iframes) хост-приложения (оболочки) и загрузка каждого приложения в соответствии с текущим URL.Написание нашего собственного фреймворка JavascriptДругие?

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

Наши требования - это обычные требования для микро-интерфейса: 1. Независимая разработка - каждая команда может выбирать свои собственные структуры и создавать свои продукты независимо от других продуктов.

Независимое развертывание - каждое приложение может быть обновлено в рабочем режиме без простоев и без вмешательства других приложений.

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

Мы хотели бы иметь возможность обновлять структуру каждого приложения (Angular, RXjs, Typescript и т. Д., А также нашу собственную библиотеку компонентов), не заботясь о других приложениях.

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

У нас есть проблемы с использованием единственного спа: 1. Загрузка активов является проблематичной. (У нас должны быть файлы ресурсов в корневой папке хост-приложения, и мы страдаем от конфликтов ресурсов при переключении на другое приложение). 2. Мы до сих пор не знаем, как обрабатывать глобальные стили для всех приложений (для стилизации мы используем sass, и его необходимо соблюдать вместе с локальными стилями для каждого приложения). 3. Обновление угловой платформы (или всех других платформ) невозможно для одного приложения это все или ничего (так как у нас есть один экземпляр angular). 4. Мы должны реализовать другой пакет для разработки другой стороны хостинг-приложения (оболочки).

Когда мы думаем о решении Iframe (с использованием дружественного Iframe), мы визуализируем полное разделение между всеми дочерними приложениями и склонны считать, что это более подходящий для нас подход.

Есть ли подводные камни для использования Iframes?

Спасибо Даниэль

Ответы на вопрос(5)

Ваш ответ на вопрос