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 » !
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 :
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 !
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 :
Conseil de pro : considérez vos composants comme des briques LEGO. Plus ils sont modulaires et composables, plus vous pouvez construire des structures étonnantes !
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 }) => (
Pourquoi ça déchire :
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.
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 :
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 !
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 :
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é !
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(); returnWindow size: {width} x {height}; };
Pourquoi c'est incroyable :
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é !
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:
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 !
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