Проверяет понимание того, как в микрофронтендах организуется навигация между независимыми приложениями и кто отвечает за маршрутизацию.
В микрофронтендной архитектуре приложение разбивается на несколько независимо разрабатываемых и деплоимых частей. Навигация между ними — одна из ключевых задач, потому что пользователь должен воспринимать всё как единое приложение, хотя под капотом это разные бандлы и команды.
Обычно выделяют два уровня маршрутизации:
Shell не должен знать детали внутренних маршрутов микрофронтендов — только их базовые префиксы. Это сохраняет слабую связанность.
Чаще всего используется History API браузера. Shell слушает изменения URL и по префиксу пути определяет, какой микрофронтенд активировать. Внутри микрофронтенда уже работает свой роутер (React Router, Vue Router и т.п.), который читает тот же URL.
// Shell: верхнеуровневый роутинг
const routes = [
{ path: '/catalog/*', load: () => import('catalog/App') },
{ path: '/cart/*', load: () => import('cart/App') },
{ path: '/profile/*', load: () => import('profile/App') },
];
function Shell() {
const { pathname } = useLocation();
const route = routes.find(r => matchPath(r.path, pathname));
const Remote = useRemoteModule(route.load);
return ;
}
Итог: применять такой подход стоит, когда несколько команд разрабатывают крупное SPA и нужна независимость деплоя. Shell управляет верхним уровнем, микрофронтенды — своими внутренними маршрутами, а связующим звеном выступает History API и общий контракт по путям.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию