Heim Web-Frontend js-Tutorial Micro-Frontends mit React: Ein umfassender Leitfaden

Micro-Frontends mit React: Ein umfassender Leitfaden

Jan 06, 2025 pm 10:50 PM

Micro-Frontends with React: A Comprehensive Guide

Da Webanwendungen immer komplexer werden, wird der Bedarf an skalierbaren und wartbaren Architekturen immer wichtiger. Micro-Frontends bieten eine Lösung, indem sie monolithische Frontend-Anwendungen in kleinere, überschaubare Teile zerlegen. In diesem Beitrag untersuchen wir das Konzept von Mikro-Frontends, wie man sie mit React implementiert und welche Vorteile sie für Ihren Entwicklungsprozess mit sich bringen.

Was sind Micro-Frontends?

Micro-Frontends erweitern die Microservices-Architektur auf das Frontend. Anstelle einer einzelnen monolithischen Anwendung ermöglichen Ihnen Mikro-Frontends die unabhängige Entwicklung und Bereitstellung einzelner Funktionen oder Abschnitte Ihrer Anwendung. Jedes Team kann einen bestimmten Teil der Anwendung besitzen, was zu einer besseren Skalierbarkeit und Wartbarkeit führt.

Hauptmerkmale von Micro-Frontends:

Unabhängig einsetzbar: Jedes Mikro-Frontend kann unabhängig entwickelt, getestet und bereitgestellt werden.
Technologieunabhängig: Teams können verschiedene Technologien für verschiedene Mikro-Frontends auswählen, was Flexibilität ermöglicht.
Teamautonomie: Teams können unabhängig arbeiten, wodurch Abhängigkeiten und Engpässe reduziert werden.

Warum Micro-Frontends verwenden?

Skalierbarkeit: Wenn Ihre Anwendung wächst, ermöglichen Ihnen Micro-Frontends die Skalierung der Entwicklung über mehrere Teams hinweg.
Schnellere Entwicklung: Unabhängige Bereitstellungen bedeuten schnellere Release-Zyklen und kürzere Markteinführungszeiten.
Verbesserte Wartbarkeit: Kleinere Codebasen sind einfacher zu verwalten, zu testen und umzugestalten.

Implementierung von Micro-Frontends mit React

  • Wählen Sie eine Micro-Frontend-Architektur Es gibt verschiedene Ansätze zur Implementierung von Micro-Frontends. Hier sind zwei beliebte Methoden:

Iframe-basiert: Jedes Micro-Frontend wird in einen Iframe geladen. Dieser Ansatz sorgt für starke Isolation, kann aber zu Herausforderungen bei der Kommunikation und dem Styling führen.

JavaScript-Bundles: Jedes Micro-Frontend ist ein separates JavaScript-Bundle, das in eine einzelne Anwendung geladen wird. Dieser Ansatz ermöglicht eine bessere Integration und gemeinsame Zustandsverwaltung.

  • Einrichten einer Micro-Frontend-Anwendung Lassen Sie uns ein einfaches Beispiel mit dem JavaScript-Bundle-Ansatz erstellen. Wir verwenden Webpack Module Federation, eine leistungsstarke Funktion, die es Ihnen ermöglicht, Code zwischen verschiedenen Anwendungen zu teilen.

Schritt 1: Erstellen Sie zwei React-Anwendungen
Erstellen Sie zwei separate React-Anwendungen, eine für den Host und eine für das Mikro-Frontend.

npx create-react-app host-app
npx create-react-app micro-frontend
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 2: Webpack-Modul-Föderation konfigurieren
Installieren Sie in der Micro-Frontend-Anwendung die erforderlichen Abhängigkeiten:

npx create-react-app host-app
npx create-react-app micro-frontend
Nach dem Login kopieren
Nach dem Login kopieren

Ändern Sie dann die webpack.config.js, um Ihre Micro-Frontend-Komponente verfügbar zu machen:

npm install --save-dev webpack webpack-cli webpack-dev-server @module-federation/webpack
Nach dem Login kopieren

Konfigurieren Sie die Host-App so, dass sie das Mikro-Frontend nutzt:

// micro-frontend/webpack.config.js
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");

module.exports = {
  // ... other configurations
  plugins: [
    new ModuleFederationPlugin({
      name: "micro_frontend",
      filename: "remoteEntry.js",
      exposes: {
        "./Button": "./src/Button", // Expose the Button component
      },
      shared: {
        react: { singleton: true },
        "react-dom": { singleton: true },
      },
    }),
  ],
};
Nach dem Login kopieren

Schritt 3: Laden Sie das Micro-Frontend
In Ihrer Host-App können Sie nun die Micro-Frontend-Komponente dynamisch laden:

// host-app/webpack.config.js
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");

module.exports = {
  // ... other configurations
  plugins: [
    new ModuleFederationPlugin({
      name: "host",
      remotes: {
        micro_frontend: "micro_frontend@http://localhost:3001/remoteEntry.js",
      },
      shared: {
        react: { singleton: true },
        "react-dom": { singleton: true },
      },
    }),
  ],
};
Nach dem Login kopieren
  • Führen Sie die Anwendungen aus Stellen Sie sicher, dass Sie beide Anwendungen auf unterschiedlichen Ports ausführen. Sie können beispielsweise das Micro-Frontend auf Port 3001 und die Host-App auf Port 3000 ausführen.
// host-app/src/App.js
import React, { useEffect, useState } from "react";

const App = () => {
  const [Button, setButton] = useState(null);

  useEffect(() => {
    const loadButton = async () => {
      const { Button } = await import("micro_frontend/Button");
      setButton(() => Button);
    };
    loadButton();
  }, []);

  return (
    <div>
      <h1>Host Application</h1>
      {Button ? <Button label="Click Me!" /> : <p>Loading...</p>}
    </div>
  );
};

export default App;
Nach dem Login kopieren

Wenn Sie nun zu http://localhost:3000 navigieren, sollten Sie sehen, wie die Host-Anwendung die Schaltfläche vom Mikro-Frontend lädt.

Micro-Frontends bieten eine leistungsstarke Möglichkeit, komplexe Front-End-Anwendungen zu verwalten, indem sie sie in kleinere, unabhängig voneinander bereitstellbare Teile aufteilen. Durch die Nutzung von React und Tools wie Webpack Module Federation können Sie eine skalierbare Architektur erstellen, die die Autonomie des Teams erhöht und die Entwicklung beschleunigt. Wenn Sie über die Einführung von Mikro-Frontends nachdenken, wägen Sie die Vorteile gegen die damit verbundene Komplexität ab und wählen Sie den Ansatz, der Ihren Projektanforderungen am besten entspricht.

Das obige ist der detaillierte Inhalt vonMicro-Frontends mit React: Ein umfassender Leitfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

JQuery Get Element Polsterung/Rand JQuery Get Element Polsterung/Rand Mar 01, 2025 am 08:53 AM

JQuery Get Element Polsterung/Rand

JQuery überprüfen, ob das Datum gültig ist JQuery überprüfen, ob das Datum gültig ist Mar 01, 2025 am 08:51 AM

JQuery überprüfen, ob das Datum gültig ist

10 JQuery Accords Registerkarten 10 JQuery Accords Registerkarten Mar 01, 2025 am 01:34 AM

10 JQuery Accords Registerkarten

10 lohnt 10 lohnt Mar 01, 2025 am 01:29 AM

10 lohnt

HTTP-Debugging mit Knoten und HTTP-Konsole HTTP-Debugging mit Knoten und HTTP-Konsole Mar 01, 2025 am 01:37 AM

HTTP-Debugging mit Knoten und HTTP-Konsole

Benutzerdefinierte Google -Search -API -Setup -Tutorial Benutzerdefinierte Google -Search -API -Setup -Tutorial Mar 04, 2025 am 01:06 AM

Benutzerdefinierte Google -Search -API -Setup -Tutorial

JQuery fügen Sie Scrollbar zu Div hinzu JQuery fügen Sie Scrollbar zu Div hinzu Mar 01, 2025 am 01:30 AM

JQuery fügen Sie Scrollbar zu Div hinzu

See all articles