ReactJS - Layout in Component

Hallo, angehende React-Entwickler! Ich freue mich sehr, euch durch die aufregende Welt der Layout-Komponenten in ReactJS zu führen. Als jemand, der seit Jahren Informatik unterrichtet, habe ich unzählige Schüler seen, die aufleuchten, wenn sie diese Konzepte verstehen. Also, lasst uns gemeinsam auf diese Reise gehen, nicht wahr?

ReactJS - Layout Component

Understanding Layout Components

Bevor wir uns in den Code stürzen, lassen Sie uns darüber sprechen, was Layout-Komponenten sind und warum sie wichtig sind. Stellen Sie sich vor, Sie bauen ein Haus. Das Layout ist wie die Bauzeichnung - es bestimmt, wo alles hinommt. In React dienen Layout-Komponenten einem ähnlichen Zweck. Sie helfen, Ihre Anwendung zu strukturieren und sie organisierter und einfacher zu warten.

Why Use Layout Components?

  1. Konsistenz: Sie stellen sicher, dass Ihre App ein einheitliches Aussehen hat.
  2. Wiederverwendbarkeit: Sie können das gleiche Layout an mehreren Stellen verwenden.
  3. Trennung von Verantwortlichkeiten: Sie halten Ihre Struktur von Ihrem Inhalt getrennt.

Nun schauen wir uns ein Beispiel an, um zu sehen, wie das in der Praxis funktioniert.

Example of a Layout Component

Zuerst erstellen wir eine einfache Layout-Komponente, die eine Kopfzeile und eine Fußzeile enthält, mit Platz für Inhalt dazwischen.

import React from 'react';

const Layout = ({ children }) => {
return (
<div className="layout">
<header>
<h1>MeineAwesomeApp</h1>
</header>
<main>{children}</main>
<footer>
<p>&copy; 2023 MeineAwesomeApp</p>
</footer>
</div>
);
};

export default Layout;

Lassen Sie uns das aufschlüsseln:

  1. Wir importieren React (immer notwendig in React-Komponenten).
  2. Wir definieren eine funktionale Komponente namens Layout.
  3. Sie nimmt ein Prop namens children, das eine besondere Prop in React ist, die den Inhalt enthält, der zwischen den öffnenden und schließenden Tags der Komponente übergeben wird.
  4. Die Komponente gibt JSX (React's Syntax zur Beschreibung von UI) zurück, das eine Kopfzeile, einen Hauptinhaltsbereich und eine Fußzeile enthält.
  5. Wir verwenden {children} im Hauptabschnitt, um den Inhalt anzuzeigen, der an diese Komponente übergeben wird.

Nun sehen wir, wie wir diese Layout-Komponente verwenden können:

import React from 'react';
import Layout from './Layout';

const HomePage = () => {
return (
<Layout>
<h2>Willkommen bei MeinerAwesomeApp!</h2>
<p>Dies ist der Inhaltsbereich der Startseite.</p>
</Layout>
);
};

export default HomePage;

In diesem Beispiel verwendet die HomePage-Komponente unsere Layout-Komponente. Der Inhalt zwischen den <Layout>-Tags wird zum children-Prop unserer Layout-Komponente.

Sharing Logic in Components: Render Props

Nun, da wir die grundlegenden Layout-Komponenten verstehen, gehen wir einen Schritt weiter mit dem Konzept der "Render Props". Dies ist eine mächtige Technik zum Austausch von Code zwischen React-Komponenten.

What are Render Props?

Render Props ist eine Technik, bei der eine Komponente eine Funktion als Prop erhält und diese Funktion verwendet, um etwas zu rendern. Es ist, als ob man einer Komponente ein "Rezept" für das zu rendernde Element gibt.

Sehen wir uns ein Beispiel an:

import React, { useState } from 'react';

const ToggleComponent = ({ render }) => {
const [isOn, setIsOn] = useState(false);

const toggle = () => setIsOn(!isOn);

return render(isOn, toggle);
};

const App = () => {
return (
<div>
<ToggleComponent
render={(isOn, toggle) => (
<div>
<button onClick={toggle}>{isOn ? 'Ausschalten' : 'Einschalten'}</button>
<p>Der Schalter ist {isOn ? 'an' : 'aus'}.</p>
</div>
)}
/>
</div>
);
};

export default App;

Lassen Sie uns das aufschlüsseln:

  1. Wir erstellen ein ToggleComponent, das seinen eigenen Zustand (isOn) verwaltet und eine toggle-Funktion bereitstellt.
  2. Anstatt seine eigene UI zu rendern, ruft es die render-Prop-Funktion auf und übergibt isOn und toggle als Argumente.
  3. In der App-Komponente verwenden wir ToggleComponent und übergeben eine Funktion als render-Prop.
  4. Diese Funktion erhält isOn und toggle und gibt die tatsächliche UI zurück, die gerendert werden soll.

Der Vorteil dieser Methode ist, dass ToggleComponent mit verschiedenen UIs wiederverwendet werden kann. Wir könnten es für einen Lichtschalter, ein Modal oder alles andere verwenden, das eine Ein/Aus-Funktionalität benötigt!

Methods Table

Hier ist eine Tabelle, die die wichtigsten Methoden zusammenfasst, die wir besprochen haben:

Methode Beschreibung Beispiel
useState Ein React-Hook, der es funktionellen Komponenten ermöglicht, Zustände hinzuzufügen const [isOn, setIsOn] = useState(false);
children Eine besondere Prop, die es ermöglicht, Komponenten als Daten an andere Komponenten zu übergeben <Layout>{/* Kindkomponenten */}</Layout>
Render Props Eine Technik zum Austausch von Code zwischen React-Komponenten, indem eine Prop verwendet wird, deren Wert eine Funktion ist <ToggleComponent render={(isOn, toggle) => (/* ... */)} />

Denken Sie daran, Übung macht den Meister! Versuchen Sie, eigene Layout-Komponenten zu erstellen und Render Props auszuprobieren. Sie werden überrascht sein, wie schnell Sie flexible, wiederverwendbare Komponenten erstellen können.

Zusammenfassend sind Layout-Komponenten und Render Props mächtige Werkzeuge in Ihrem React-Werkzeugkasten. Sie ermöglichen es Ihnen, organisiertere, wiederverwendbare und flexible Code zu schreiben. Während Sie Ihre React-Reise fortsetzen, werden Sie viele Möglichkeiten finden, diese Konzepte anzuwenden, um beeindruckende Benutzeroberflächen zu erstellen. Viel Spaß beim Coden!

Credits: Image by storyset