Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Styling mit CSS-Modulen | Styling in React Apps
React-Meisterschaft
course content

Kursinhalt

React-Meisterschaft

React-Meisterschaft

2. Styling in React Apps
3. React Hooks und Context
4. React in der Realen Welt

book
Styling mit CSS-Modulen

CSS-Module ist ein Ansatz, der es uns ermöglicht, CSS-Klassennamen lokal auf bestimmte Komponenten zu beschränken. Es bietet eine Möglichkeit, CSS-Code modular und gekapselt zu schreiben, wodurch die Wahrscheinlichkeit von Stilkonflikten verringert und die Stile wartbarer gemacht werden. Tatsächlich ist es zu einem der am weitesten verbreiteten Ansätze zur Organisation von React-Projekten geworden.

Datei-Ordner-Organisation

Angenommen, wir haben die folgende Benutzeroberfläche, die aus drei Komponenten besteht: VideoPlayer, AuthorInformation und VideoDescription.

Wir werden nicht alle Komponenten und Stile in einer einzigen Datei konsolidieren. Stattdessen werden wir für jede Komponente einen separaten Ordner einrichten. In jedem Ordner erstellen wir eine jsx-Datei für Rendering- und Logikzwecke und eine css-Datei zum Anwenden von Stilen. Jede css-Datei sollte am Ende module.css haben, um Modularität zu erreichen. Somit würde die Struktur wie folgt aussehen:

Hinweis

Dieser Ansatz bietet eine praktische Lösung für die Erstellung von React-Komponenten und das Schreiben von Stilen. Er stellt sicher, dass jede Komponente isoliert ist und effektiv wiederverwendet werden kann. Das lokale Scoping von Klassennamen verbessert die Codeorganisation, fördert die Wiederverwendbarkeit und vermeidet Stilkonflikte.

Syntax

Lassen Sie uns die Syntax der Verwendung modularer Stile für eine Komponente erkunden, am Beispiel der VideoDescription-Komponente.

Innerhalb der VideoDescription.jsx erstellen wir eine Komponente, die ein bestimmtes Markup generiert. Es gibt nichts besonders Neues oder Unbekanntes daran.

Der Unterschied entsteht, wenn wir einen Klassennamen anwenden möchten. Zuerst müssen wir die Datei VideoDescription.module.css in die Datei VideoDescription.jsx importieren. Dies können wir mit der folgenden Syntax erreichen:

  • <file_name> kann jedes Wort sein, das wir mit der Datei assoziieren. Im Allgemeinen wird der Name wie folgt vergeben: css, styles oder einfach s;
  • <file_path> ist der korrekte Pfad zur Datei. Wir kennen bereits die Syntax: ./.

Ergebnis:

Um einem Element einen Klassennamen zuzuweisen, können wir das Attribut className verwenden. Innerhalb dieses Attributs schließen wir den gewünschten Klassennamen in geschweifte Klammern {} ein. Innerhalb der Klammern fügen wir das spezifische Wort ein, das mit der Styles-Datei assoziiert ist, gefolgt von einem Punkt . und dem Klassennamen. Ergebnis: className={css.text}. text ist der tatsächliche Klassenname.

Jetzt können wir die Datei VideoDescription.module.css öffnen und die Stile auf das p-Element mit dem Klassennamen text unter Verwendung des Klassenselektors anwenden:

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 8
We're sorry to hear that something went wrong. What happened?
some-alt