"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Modèles de conception essentiels pour les applications React : améliorer votre jeu de composants

Modèles de conception essentiels pour les applications React : améliorer votre jeu de composants

Publié le 2024-09-28
Parcourir:603

Essential Design Patterns for React Apps: Leveling Up Your Component Game

Si vous êtes dans le monde React depuis un certain temps, vous avez probablement entendu l'expression "C'est juste du JavaScript". Même si cela est vrai, cela ne signifie pas que nous ne pouvons pas bénéficier de modèles éprouvés pour rendre nos applications React plus maintenables, réutilisables et tout à fait agréables à utiliser. Plongeons dans quelques modèles de conception essentiels qui peuvent faire passer vos composants React de « meh » à « merveilleux » !

Pourquoi les modèles de conception sont importants dans React

Avant de nous lancer, abordons le problème qui se pose : pourquoi s'embêter avec des modèles de conception ? Eh bien, chers amis passionnés de React, les modèles de conception sont comme les recettes secrètes du monde du codage. Ce sont des solutions éprouvées à des problèmes courants qui peuvent :

  1. Rendez votre code plus lisible et maintenable
  2. Favorisez la réutilisabilité dans votre application
  3. Résolvez des problèmes complexes avec des solutions élégantes
  4. Vous aider à communiquer plus efficacement vos idées avec d'autres développeurs

Maintenant que nous sommes sur la même longueur d'onde, explorons quelques modèles qui feront briller vos composants React plus brillants qu'une voiture de sport fraîchement cirée !

1. Le modèle de composition des composants

Le modèle de composant de React est déjà un modèle puissant en soi, mais aller plus loin avec la composition peut conduire à un code plus flexible et réutilisable.

// Instead of this:
const Button = ({ label, icon, onClick }) => (
  
);

// Consider this:
const Button = ({ children, onClick }) => (
  
);

const IconButton = ({ icon, label }) => (
  
);

Pourquoi c'est génial :

  • Composants plus flexibles et réutilisables
  • Plus facile à personnaliser et à étendre
  • Suit le principe de responsabilité unique

Conseil de pro : considérez vos composants comme des briques LEGO. Plus ils sont modulaires et composables, plus vous pouvez construire des structures étonnantes !

2. Le modèle conteneur/présentation

Ce modèle sépare la logique de votre composant de sa présentation, ce qui facilite le raisonnement et les tests.

// Container Component
const UserListContainer = () => {
  const [users, setUsers] = useState([]);

  useEffect(() => {
    fetchUsers().then(setUsers);
  }, []);

  return ;
};

// Presentational Component
const UserList = ({ users }) => (
  
    {users.map(user => (
  • {user.name}
  • ))}
);

Pourquoi ça déchire :

  • Séparation claire des préoccupations
  • Plus facile à tester et à maintenir
  • Favorise la réutilisation du composant de présentation

N'oubliez pas : les conteneurs sont comme l'équipe des coulisses d'une pièce de théâtre, gérant tout le travail en coulisses, tandis que les éléments de présentation sont les acteurs, concentrés uniquement sur l'apparence du public.

3. Le modèle de composant d'ordre supérieur (HOC)

Les HOC sont des fonctions qui prennent un composant et renvoient un nouveau composant avec des fonctionnalités supplémentaires. Ce sont comme des power-ups pour vos composants !

const withLoader = (WrappedComponent) => {
  return ({ isLoading, ...props }) => {
    if (isLoading) {
      return ;
    }
    return ;
  };
};

const EnhancedUserList = withLoader(UserList);

Pourquoi c'est cool :

  • Permet la réutilisation du code sur différents composants
  • Garde vos composants propres et concentrés
  • Peut être composé pour plusieurs améliorations

Mise en garde : bien que les HOC soient puissants, ils peuvent conduire à un "enfer du wrapper" s'ils sont trop utilisés. Utilisez-les à bon escient !

4. Le modèle d'accessoires de rendu

Ce modèle implique de transmettre une fonction en tant qu'accessoire à un composant, vous donnant plus de contrôle sur ce qui est rendu.

const MouseTracker = ({ render }) => {
  const [position, setPosition] = useState({ x: 0, y: 0 });

  const handleMouseMove = (event) => {
    setPosition({ x: event.clientX, y: event.clientY });
  };

  return (
    
{render(position)}
); }; // Usage (

The mouse is at ({x}, {y})

)} />

Pourquoi c'est chouette :

  • Très flexible et réutilisable
  • Évite les problèmes avec les HOC tels que les collisions de noms d'accessoires
  • Permet un rendu dynamique basé sur la fonction fournie

Fait amusant : le modèle d'accessoires de rendu est si flexible qu'il peut même implémenter la plupart des autres modèles dont nous avons discuté !

5. Le modèle de crochet personnalisé

Les hooks sont les nouveaux venus dans React, et les hooks personnalisés vous permettent d'extraire la logique des composants dans des fonctions réutilisables.

const useWindowSize = () => {
  const [size, setSize] = useState({ width: 0, height: 0 });

  useEffect(() => {
    const handleResize = () => {
      setSize({ width: window.innerWidth, height: window.innerHeight });
    };

    window.addEventListener('resize', handleResize);
    handleResize(); // Set initial size

    return () => window.removeEventListener('resize', handleResize);
  }, []);

  return size;
};

// Usage
const MyComponent = () => {
  const { width, height } = useWindowSize();
  return 
Window size: {width} x {height}
; };

Pourquoi c'est incroyable :

  • Permet un partage facile de la logique avec état entre les composants
  • Garde vos composants propres et concentrés
  • Peut remplacer de nombreuses utilisations des HOC et des accessoires de rendu

Conseil de pro : si vous vous retrouvez à répéter une logique similaire dans plusieurs composants, il est peut-être temps de l'extraire dans un hook personnalisé !

Conclusion : Pattern dynamisez vos applications React

Les modèles de conception dans React sont comme une ceinture utilitaire remplie de gadgets : ils vous donnent le bon outil pour le travail, quels que soient les défis que votre application vous lance. Souviens-toi:

  1. Utilisez la composition des composants pour des interfaces utilisateur flexibles et modulaires
  2. Tirez parti du conteneur/présentation pour une séparation claire des préoccupations
  3. Employer des HOC pour des préoccupations transversales
  4. Utilisez les accessoires de rendu pour une flexibilité ultime
  5. Créez des hooks personnalisés pour partager une logique avec état

En incorporant ces modèles dans votre boîte à outils React, vous serez sur la bonne voie pour créer des composants plus maintenables, réutilisables et élégants. Votre futur moi (et vos coéquipiers) vous remercieront lorsqu'ils parcourront votre base de code bien structurée !

Bon codage !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/alessandrorodrigo/essential-design-patterns-for-react-apps-leveling-up-your-component-game-l8c?1 En cas de violation, veuillez contacter study_golang @163.com supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3