Micro Frontends Architecture with Module Federation · Урок

Обработка вложенной навигации и переходов между приложениями

Узнайте, как координировать вложенные маршруты, принадлежащие отдельным микрофронтендам, и плавно переходить из одного MFE в другой.

Урок 4 из 413 шагов

«Обработка вложенной навигации и переходов между приложениями» — бесплатный урок Micro Frontends Architecture with Module Federation на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Micro Frontends Architecture with Module Federation, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Micro Frontends Architecture with Module Federation содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

The Nested Routing Challenge

In federated apps, the shell owns top-level routes while each micro frontend owns its own internal (nested) routes. Coordinating the two is the heart of MFE navigation.

Route Ownership

A clear rule helps: the shell maps a route prefix to an MFE, and everything below that prefix belongs to the MFE.

/products/*  -> product MFE
/cart/*      -> cart MFE
/account/*   -> account MFE

Mounting an MFE at a Prefix

The shell renders the MFE for a prefix and lets it handle the remaining path segment.

<Route path="/products/*" element={<ProductApp />} />

Nested Routes Inside an MFE

The MFE defines its own router scoped to its prefix, so it controls its sub-pages without the shell knowing about them.

<Routes>
  <Route path="/" element={<List />} />
  <Route path=":id" element={<Detail />} />
</Routes>

basename for Scoped Routers

Give the MFE router a basename matching its prefix so its links resolve correctly within the larger app.

<BrowserRouter basename="/products">
  ...
</BrowserRouter>

Cross-App Navigation

Sometimes one MFE must send the user into another (e.g. cart linking to checkout). The challenge: it should not import the other MFE router directly.

Navigating via the URL

The cleanest cross-app navigation just changes the URL. The shell router then mounts the right MFE — no direct coupling needed.

history.pushState({}, "", "/checkout");
window.dispatchEvent(new PopStateEvent("popstate"));

A Shared Navigation Service

To avoid manual history hacks, the shell can expose a small navigate function that MFEs call, centralizing navigation logic.

import { navigate } from "shell/navigation";
navigate("/checkout");

Keeping Routers in Sync

All MFEs must respond to the same browser history. Using one history source (the browser History API) keeps the shell and every MFE router synchronized on back/forward.

Avoiding Route Conflicts

Two MFEs claiming overlapping prefixes cause unpredictable rendering. Maintain a single registry of route prefixes to guarantee they never collide.

Lazy Loading per Route

Combine nested routing with lazy loading: only fetch an MFE bundle when the user navigates to its prefix, keeping initial load small.

const ProductApp = React.lazy(() => import("products/App"));

Quick Check

Test your nested-routing knowledge.

Recap

You learned nested and cross-app navigation:

  • Shell owns prefixes; MFEs own nested routes
  • Use basename to scope MFE routers
  • Navigate across apps via URL or a shared service
  • Share one browser history source
  • Prevent prefix conflicts and lazy-load by route

Coordinated routing makes federated navigation feel seamless.

Можно начать бесплатно

Изучай JavaScript с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

Часто задаваемые вопросы

Урок «Обработка вложенной навигации и переходов между приложениями» бесплатный?

Да — полный текст урока «Обработка вложенной навигации и переходов между приложениями» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Micro Frontends Architecture with Module Federation, подпишись на CoddyKit PRO. Курс Micro Frontends Architecture with Module Federation содержит 4 уроков всего.

Чему я научусь в уроке «Обработка вложенной навигации и переходов между приложениями»?

Узнайте, как координировать вложенные маршруты, принадлежащие отдельным микрофронтендам, и плавно переходить из одного MFE в другой. Ты практикуешь Micro Frontends Architecture with Module Federation с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Micro Frontends Architecture with Module Federation?

Предыдущий опыт не требуется. Micro Frontends Architecture with Module Federation на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Обработка вложенной навигации и переходов между приложениями»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Micro Frontends Architecture with Module Federation?

Да. Каждый урок Micro Frontends Architecture with Module Federation включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Стратегия централизованной маршрутизации
  2. Реализация федеративной маршрутизации
  3. Глубокие ссылки и управление URL
  4. Обработка вложенной навигации и переходов между приложениями
← Назад к Micro Frontends Architecture with Module Federation