Maison > interface Web > js tutoriel > Micro-frontends avec React : un guide complet

Micro-frontends avec React : un guide complet

Patricia Arquette
Libérer: 2025-01-06 22:50:43
original
757 Les gens l'ont consulté

Micro-Frontends with React: A Comprehensive Guide

À mesure que les applications Web deviennent de plus en plus complexes, le besoin d'architectures évolutives et maintenables devient primordial. Les micro-frontends offrent une solution en décomposant les applications frontales monolithiques en éléments plus petits et gérables. Dans cet article, nous explorerons le concept des micro-frontends, comment les mettre en œuvre à l'aide de React et les avantages qu'ils apportent à votre processus de développement.

Que sont les micro-frontends ?

Les micro-frontends étendent l'architecture des microservices au front-end. Au lieu d'une seule application monolithique, les micro-frontends vous permettent de développer et de déployer indépendamment des fonctionnalités ou des sections individuelles de votre application. Chaque équipe peut posséder une partie spécifique de l'application, ce qui conduit à une meilleure évolutivité et maintenabilité.

Caractéristiques clés des micro-frontends :

Déployable indépendamment : chaque micro-frontend peut être développé, testé et déployé indépendamment.
Agnostique en matière de technologie : les équipes peuvent choisir différentes technologies pour différentes micro-frontends, ce qui permet une plus grande flexibilité.
Autonomie des équipes : les équipes peuvent travailler de manière indépendante, réduisant ainsi les dépendances et les goulots d'étranglement.

Pourquoi utiliser des micro-frontends ?

Évolutivité : à mesure que votre application se développe, les micro-frontends vous permettent d'étendre le développement à plusieurs équipes.
Développement plus rapide : les déploiements indépendants signifient des cycles de publication plus rapides et des délais de mise sur le marché réduits.
Maintenabilité améliorée : les bases de code plus petites sont plus faciles à gérer, tester et refactoriser.

Implémentation de micro-frontends avec React

  • Choisissez une architecture micro-frontend Il existe plusieurs approches pour implémenter des micro-frontends. Voici deux méthodes populaires :

Basé sur Iframe : Chaque micro-frontend est chargé dans une iframe. Cette approche entraîne un fort isolement mais peut entraîner des problèmes de communication et de style.

JavaScript Bundles : chaque micro-frontend est un bundle JavaScript distinct qui est chargé dans une seule application. Cette approche permet une meilleure intégration et une gestion partagée de l'état.

  • Configuration d'une application micro-frontend Créons un exemple simple en utilisant l'approche du bundle JavaScript. Nous utiliserons Webpack Module Federation, une fonctionnalité puissante qui vous permet de partager du code entre différentes applications.

Étape 1 : Créer deux applications React
Créez deux applications React distinctes, une pour l'hôte et une pour le micro-frontend.

npx create-react-app host-app
npx create-react-app micro-frontend
Copier après la connexion
Copier après la connexion

Étape 2 : Configurer la fédération de modules Webpack
Dans l'application micro-frontend, installez les dépendances nécessaires :

npx create-react-app host-app
npx create-react-app micro-frontend
Copier après la connexion
Copier après la connexion

Ensuite, modifiez le webpack.config.js pour exposer votre composant micro-frontend :

npm install --save-dev webpack webpack-cli webpack-dev-server @module-federation/webpack
Copier après la connexion

Dans l'application hôte, configurez-la pour consommer le micro-frontend :

// 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 },
      },
    }),
  ],
};
Copier après la connexion

Étape 3 : Charger le micro-frontend
Dans votre application hôte, vous pouvez désormais charger dynamiquement le composant micro-frontend :

// 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 },
      },
    }),
  ],
};
Copier après la connexion
  • Exécutez les applications Assurez-vous d'exécuter les deux applications sur des ports différents. Par exemple, vous pouvez exécuter le micro-frontend sur le port 3001 et l'application hôte sur le port 3000.
// 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;
Copier après la connexion

Maintenant, lorsque vous accédez à http://localhost:3000, vous devriez voir l'application hôte charger le bouton depuis le micro-frontend.

Les micro-frontends offrent un moyen puissant de gérer des applications frontales complexes en les divisant en éléments plus petits et déployables indépendamment. En tirant parti de React et d'outils tels que Webpack Module Federation, vous pouvez créer une architecture évolutive qui améliore l'autonomie de l'équipe et accélère le développement. Lorsque vous envisagez d'adopter des micro-interfaces, pesez les avantages par rapport à la complexité qu'elles introduisent et choisissez l'approche qui correspond le mieux aux besoins de votre projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal