Wenn Sie schon eine Weile in der React-Welt sind, haben Sie wahrscheinlich schon einmal den Satz „Es ist nur JavaScript“ gehört. Das stimmt zwar, heißt aber nicht, dass wir nicht von einigen bewährten Mustern profitieren können, um unsere React-Apps wartbarer, wiederverwendbarer und geradezu angenehmer zu machen. Lassen Sie uns in einige wesentliche Designmuster eintauchen, die Ihre React-Komponenten von „meh“ zu „wunderbar“ machen können!
Bevor wir einsteigen, wollen wir uns mit dem Elefanten im Raum befassen: Warum sollte man sich überhaupt mit Designmustern beschäftigen? Nun, mein React-Enthusiast, Designmuster sind wie die Geheimrezepte der Programmierwelt. Es handelt sich um kampferprobte Lösungen für häufig auftretende Probleme, die:
Da wir uns nun auf dem gleichen Stand befinden, erkunden wir einige Muster, die Ihre React-Komponenten heller erstrahlen lassen als einen frisch gewachsten Sportwagen!
Das Komponentenmodell von React ist an sich bereits ein leistungsstarkes Muster, aber wenn man es mit der Komposition noch einen Schritt weiter bringt, kann dies zu flexiblerem und wiederverwendbarerem Code führen.
// Instead of this: const Button = ({ label, icon, onClick }) => ( ); // Consider this: const Button = ({ children, onClick }) => ( ); const IconButton = ({ icon, label }) => ( );
Warum es großartig ist:
Profi-Tipp: Betrachten Sie Ihre Komponenten als LEGO-Steine. Je modularer und zusammensetzbarer sie sind, desto erstaunlichere Strukturen können Sie bauen!
Dieses Muster trennt die Logik Ihrer Komponente von ihrer Präsentation und erleichtert so das Nachdenken und Testen.
// Container Component const UserListContainer = () => { const [users, setUsers] = useState([]); useEffect(() => { fetchUsers().then(setUsers); }, []); return; }; // Presentational Component const UserList = ({ users }) => (
Warum es rockt:
Denken Sie daran: Container sind wie das Backstage-Team eines Theaterstücks, das die gesamte Arbeit hinter den Kulissen übernimmt, während Präsentationskomponenten die Schauspieler sind, die sich ausschließlich darauf konzentrieren, für das Publikum gut auszusehen.
HOCs sind Funktionen, die eine Komponente übernehmen und eine neue Komponente mit einigen zusätzlichen Funktionen zurückgeben. Sie sind wie Power-Ups für Ihre Komponenten!
const withLoader = (WrappedComponent) => { return ({ isLoading, ...props }) => { if (isLoading) { return; } return ; }; }; const EnhancedUserList = withLoader(UserList);
Warum es cool ist:
Wort zur Vorsicht: Obwohl HOCs mächtig sind, können sie bei übermäßigem Gebrauch zur „Wrapper-Hölle“ führen. Setzen Sie sie mit Bedacht ein!
Bei diesem Muster wird eine Funktion als Requisite an eine Komponente übergeben, sodass Sie mehr Kontrolle darüber haben, was gerendert wird.
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})
)} />
Warum es so praktisch ist:
Unterhaltsame Tatsache: Das Render-Requisiten-Muster ist so flexibel, dass es sogar die meisten anderen von uns besprochenen Muster implementieren kann!
Hooks sind die neuen Kinder in React, und benutzerdefinierte Hooks ermöglichen es Ihnen, Komponentenlogik in wiederverwendbare Funktionen zu extrahieren.
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}; };
Warum es erstaunlich ist:
Profi-Tipp: Wenn Sie feststellen, dass sich eine ähnliche Logik in mehreren Komponenten wiederholt, ist es möglicherweise an der Zeit, sie in einen benutzerdefinierten Hook zu extrahieren!
Designmuster in React sind wie ein Gürtel voller Gadgets – sie geben Ihnen das richtige Werkzeug für den Job, egal welche Herausforderungen Ihre App Ihnen stellt. Erinnern:
Durch die Integration dieser Muster in Ihr React-Toolkit sind Sie auf dem besten Weg, wartbarere, wiederverwendbarere und elegantere Komponenten zu erstellen. Ihr zukünftiges Ich (und Ihre Teamkollegen) werden es Ihnen danken, wenn sie Ihre gut strukturierte Codebasis durchforsten!
Viel Spaß beim Codieren!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3