Демонстрационный проект, показывающий различные способы передачи данных между host и remote приложениями в архитектуре Module Federation.
Проект состоит из одного host приложения и трех remote приложений:
- host (порт 8080) - главное приложение
- remote-props (порт 8081) - передача данных через пропсы
- remote-events (порт 8082) - передача данных через события
- remote-mobx (порт 8083) - передача данных через MobX store
npm installnpm startВсе приложения запустятся одновременно с цветной индикацией в консоли.
- Применение:
remote-props - Описание: Классический способ передачи данных через React пропсы
- Преимущества: Простота, типобезопасность
- Недостатки: Только однонаправленная передача
- Применение:
remote-events - Описание: Использование CustomEvent для передачи данных
- Преимущества: Двунаправленная связь, слабая связанность
- Недостатки: Нет типобезопасности, сложнее отладка
- Применение:
remote-mobx - Описание: Глобальное состояние через MobX
- Преимущества: Реактивность, централизованное управление состоянием
- Недостатки: Дополнительная зависимость, сложность при масштабировании
- React 18 - UI библиотека
- Webpack 5 - сборщик модулей
- Module Federation - архитектура микрофронтендов
- MobX - управление состоянием
- Babel - транспиляция JavaScript
module-federation/
├── host/ # Главное приложение
├── remote-props/ # Remote с передачей через пропсы
├── remote-events/ # Remote с передачей через события
├── remote-mobx/ # Remote с передачей через MobX
└── package.json # Корневой package.json
- Host: http://localhost:8080
- Remote Props: http://localhost:8081
- Remote Events: http://localhost:8082
- Remote MobX: http://localhost:8083
- Все приложения используют Module Federation для динамической загрузки компонентов
- Host приложение содержит кнопки для демонстрации каждого способа передачи данных
- Каждый remote компонент отображает полученные данные в реальном времени
