Maison > interface Web > js tutoriel > Caractéristique clé de l'architecture basée sur les composants

Caractéristique clé de l'architecture basée sur les composants

Mary-Kate Olsen
Libérer: 2024-10-21 18:30:02
original
406 Les gens l'ont consulté

Key characteristic of Component-Based Architecture

Voici 5 caractéristiques clés de l'Architecture basée sur les composants implémentée dans React JS. Ces exemples démontreront comment les composants React incarnent les caractéristiques de

  1. Réutilisabilité
  2. Encapsulation, Interchangeabilité
  3. Évolutivité
  4. Maintenabilité
  5. Composition

Réutilisabilité
Les composants peuvent être réutilisés dans différentes parties de l'application.
Exemple : Un composant Button utilisé plusieurs fois

function Button({ label, onClick }) {
  return <button onClick={onClick}>{label}</button>;
}

function App() {
  return (
    <div>
      <Button label="Submit" onClick={() => alert('Submit clicked')} />
      <Button label="Cancel" onClick={() => alert('Cancel clicked')} />
    </div>
  );
}
Copier après la connexion

Encapsulation
Les composants encapsulent leur logique et leurs styles, empêchant les interférences extérieures.
Exemple : composant UserProfile encapsulant les données utilisateur

function UserProfile({ name, email }) {
  return (
    <div>
      <h3>{name}</h3>
      <p>Email: {email}</p>
    </div>
  );
}

function App() {
  return (
    <UserProfile name="John Doe" email="john@example.com" />
  );
}
Copier après la connexion

Interchangeabilité
Les composants peuvent être échangés ou remplacés sans affecter la fonctionnalité globale de l'application.
Exemple : échange d'un PrimaryButton avec SecondaireButton

function PrimaryButton({ label, onClick }) {
  return <button style={{ backgroundColor: 'blue', color: 'white' }} onClick={onClick}>{label}</button>;
}

function SecondaryButton({ label, onClick }) {
  return <button style={{ backgroundColor: 'gray', color: 'white' }} onClick={onClick}>{label}</button>;
}

function App({ usePrimary }) {
  return (
    <div>
      {usePrimary ? <PrimaryButton label="Click Me" onClick={() => alert('Primary clicked')} /> : 
                   <SecondaryButton label="Click Me" onClick={() => alert('Secondary clicked')} />}
    </div>
  );
}
Copier après la connexion

Évolutivité
Les composants facilitent la mise à l'échelle en ajoutant plus de fonctionnalités sans affecter les composants existants.
Exemple : ajout de composants de produit supplémentaires pour faire évoluer l'application

function Product({ name, price }) {
  return (
    <div>
      <h3>{name}</h3>
      <p>Price: ${price}</p>
    </div>
  );
}

function ProductList() {
  const products = [
    { name: 'iPhone 13', price: 999 },
    { name: 'Samsung Galaxy S21', price: 799 },
    { name: 'Google Pixel 6', price: 599 },
  ];

  return (
    <div>
      {products.map((product, index) => (
        <Product key={index} name={product.name} price={product.price} />
      ))}
    </div>
  );
}

function App() {
  return <ProductList />;
}
Copier après la connexion

Maintenabilité
Les composants sont isolés, ils peuvent donc être facilement entretenus et mis à jour de manière indépendante.
Exemple : Mettre à jour le composant Produit sans affecter le reste de l'application

function Product({ name, price }) {
  // Add a new feature to show if the product is on sale
  const isOnSale = price < 700;
  return (
    <div>
      <h3>{name}</h3>
      <p>Price: ${price} {isOnSale && <span>(On Sale!)</span>}</p>
    </div>
  );
}

function App() {
  return (
    <div>
      <Product name="Google Pixel 6" price={599} />
    </div>
  );
}
Copier après la connexion

Composition
Les composants peuvent être combinés ou composés pour créer des interfaces utilisateur plus complexes.
Exemple : composer l'en-tête, le produit et le pied de page en une seule page

function Header() {
  return <h1>Welcome to My Shop</h1>;
}

function Product({ name, price }) {
  return (
    <div>
      <h3>{name}</h3>
      <p>Price: ${price}</p>
    </div>
  );
}

function Footer() {
  return <footer>Contact us at shop@example.com</footer>;
}

function Page() {
  return (
    <div>
      <Header />
      <Product name="Apple Watch" price={399} />
      <Footer />
    </div>
  );
}

function App() {
  return <Page />;
}
Copier après la connexion

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