Inhaltsverzeichnis
2. Strukturieren Sie Ihre Komponenten und Geschichten
3. Verwenden Sie Args und Steuerelemente für dynamische Tests
4. Dokumentieren Sie mit MDX und fügen Sie Designrichtlinien hinzu
5. Integrieren Sie Design -Token und Themen
6. Tests und Automatisierung hinzufügen
Letzte Gedanken
Heim Web-Frontend js-Tutorial Erstellen eines Designsystems mit Storybook und React

Erstellen eines Designsystems mit Storybook und React

Jul 30, 2025 am 05:05 AM
Entwerfen Sie das System

Verwenden Sie zunächst NPX Storybook Init, um das Storybook in React Project zu installieren und zu konfigurieren. Führen Sie NPM Run Storybook aus, um den lokalen Entwicklungsserver zu starten. 2. organisieren Sie die Struktur der Komponentendatei nach Funktion oder Typ und erstellen Sie entsprechende .Stories.js -Dateien, um verschiedene Zustände in jedem Komponentenverzeichnis zu definieren. 3.. Verwenden Sie die Argumente und steuert die Systeme von Storybook, um dynamische Attributanpassungen zu erreichen, um die Prüfung verschiedener interaktiver Zustände zu erleichtern. 4. Verwenden Sie MDX -Dateien, um reichhaltige Textdokumente zu schreiben, die Designspezifikationen, Barrierefreiheit usw. enthalten, und unterstützen Sie das Laden von MDX durch Konfiguration. 5. Definieren Sie Design -Token durch Themen und verwenden Sie ThemeProvider, um weltweit Themenstile in Preview.js zu injizieren. 6. Integrieren Sie die Scherz- und React-Testbibliothek durch, führt Unit-Tests, visuelle Regressionstests mit Chromatik und Überprüfungen nach Barrierefreiheitsproblemen über @Storybook/Addon-A11Y durch. Schließlich ein skalierbares Designsystem, das unabhängige Entwicklung, visuelle Dokumente, automatisierte Tests unterstützt und die Zusammenarbeit mit der Design- und Entwicklung fördert. Dieses System kann effizient wiederverwenden, indem sie die Komponenten schrittweise wiederholen und zu einem erforderlichen Instrument zur Verbesserung der UI -Konsistenz und der Entwicklungseffizienz werden.

Erstellen eines Designsystems mit Storybook und React

Das Aufbau eines Designsystems mit Storybook und React ist eine leistungsstarke Möglichkeit, konsistente, wiederverwendbare UI -Komponenten zu erstellen, die über Teams und Produkte hinweg skalieren. Storybook bietet eine isolierte Entwicklungsumgebung für UI -Komponenten, mit der sie isoliert das Erstellen, Testen und Dokumentieren erleichtern können - ohne auf die vollständige App zu stützen. In Kombination mit React wird diese Kombination zu einem Anlaufort für moderne Designsysteme.

Erstellen eines Designsystems mit Storybook und React

Hier erfahren Sie, wie Sie es effektiv angehen können.


1. Richten Sie ein Storybook mit React ein

Fügen Sie zunächst Ihr React -Projekt hinzu. Wenn Sie die React -App erstellen oder ein Standard -React -Setup erstellen, ist es am einfachsten, die automatisierte CLI zu verwenden:

Erstellen eines Designsystems mit Storybook und React
 NPX Storybook Init

Dieser Befehl installiert das Storybook, fügt die erforderlichen Konfigurationsdateien hinzu und legt Beispielgeschichten ein. Einmal fertig, rennen Sie:

 NPM Run Storybook

Dies startet den Storybook Development Server, normalerweise unter http://localhost:6006 , wo Sie Ihre Komponenten in Echtzeit anzeigen können.

Erstellen eines Designsystems mit Storybook und React

Tipp: Der Init -Befehl funktioniert gut mit den meisten React -Einstellungen, einschließlich vite und next.js. Wenn Sie eine benutzerdefinierte Webpack -Konfiguration verwenden, müssen Sie möglicherweise .storybook/main.js entsprechend anpassen.


2. Strukturieren Sie Ihre Komponenten und Geschichten

Eine gut organisierte Dateistruktur ist der Schlüssel zur Wartbarkeit. Gruppenkomponenten logischerweise - typisch nach Merkmal oder Typ (z. B. atoms , molecules , organisms ) oder nach Kategorie wie Button , Form , Navigation .

Beispielstruktur:

 src/
├── Komponenten/
│ ├── Taste/
│ │ ├── Button.jsx
│ │ ├── Button.Stories.js
│ └── Taste.module.css
│ ├── Eingabe/
│ │ ├── Eingabe.jsx
│ └── Input.Stories.js
├── Styles/
│ └── thema.js

Definieren Sie in jeder .stories.js -Datei, wie die Komponente in verschiedenen Zuständen gerendert werden soll:

 // button.stories.js
{button} von './button' importieren;

Standard ausführen {
  Titel: 'Komponenten/Schaltfläche',
  Komponente: Taste,
  argttypes: {
    Variante: {Steuerung: 'Select', Optionen: ['primär', 'sekundär']},
  },
};

Export const primär = {
  args: {
    Etikett: "Klicken Sie mich",
    Variante: 'primär',
  },
};

Export const deaktiviert = {
  args: {
    Etikett: 'deaktiviert',
    Behindert: wahr,
  },
};

Dadurch werden interaktive Steuerelemente (z.


3. Verwenden Sie Args und Steuerelemente für dynamische Tests

Das Argumentationssystem von Storybook ermöglicht es Ihnen, Komponenteneingänge im laufenden Fliegen zu ändern. In Kombination mit Steuerelementen können Benutzer Requisiten direkt in der Benutzeroberfläche optimieren - für den Testen von Kanten und die Präsentation der Flexibilität.

Beispiel:

 argttypes: {
  Größe: {Steuerung: 'Radio', Optionen: ['klein', 'Medium', 'groß']},
  Onclick: {Aktion: 'Klickte'}, // Protokolle Klicks
}

Dies bedeutet, dass QA, PMS oder Designer mit der Schaltfläche interagieren und sehen können, wie es sich beim Klicken oder der Größe verändert - ohne Berührungscode.

Pro-Tipp: Verwenden Sie controls: { exclude: ['id', 'className'] } um interne oder nicht visuelle Requisiten vor dem Bedienfeld zu verbergen.


4. Dokumentieren Sie mit MDX und fügen Sie Designrichtlinien hinzu

Gehen Sie über Code -Beispiele hinaus. Verwenden Sie MDX (Markdown JSX), um eine reiche Dokumentation zu schreiben, die Design -Token, Verwendungsrichtlinien, Barrierefreiheit und sogar Figma -Links enthält.

Erstellen Sie eine Button.stories.mdx -Datei:

 importieren {meta, story, canvas} aus '@storybook/blocks';
Import * als ButtonStories von './button.stories.js';

<Meta title = "components /button" component = {button} />

# Taste

Verwenden Sie Tasten, um Aktionen auszulösen. Bevorzugen Sie Primärtasten für Hauptaktionen, die für Alternativen sekundär sind.

<Canvas>
  <Story von = {buttonStories.primary} />
</Canvas>

## Zugänglichkeit

Fügen Sie immer beschreibende Beschriftungen ein. Vermeiden Sie nur Symbol-Tasten, es sei denn, Sie sind ordnungsgemäß mit "aria-label" gekennzeichnet.

Konfigurieren Sie dann Storybook, um MDX -Dateien durch Aktualisieren von .storybook/main.js zu laden:

 module.exports = {
  Geschichten: [&#39;../src/**/*.stories.@(js|jsx|ts|tsx|mdx)&#39;],
  // ...
};

Jetzt wird Ihr Designsystem zu einem Leitfaden für den Lebensstil.


5. Integrieren Sie Design -Token und Themen

Teilen Sie visuelle Stile (Farben, Typografie, Abstand) über ein Themenobjekt, häufig mit styled-components , emotion oder CSS-in-Js.

Beispielthema:

 // thema.js
Export const thema = {
  Farben: {
    Primär: &#39;#007BFF&#39;,
    sekundär: &#39;#6c757d&#39;,
  },
  Abstand: (Faktor) => `$ {0,5 * Faktor} Rem`,,
  Typografie: {
    Überschrift: &#39;BOLD 1.5REM SYSTEM-UI&#39;,
  },
};

Wickeln Sie Ihre Geschichten mit einem Dekorateur, um das Thema weltweit in .storybook/preview.js anzuwenden:

 importieren {themeProvider} aus &#39;Stilkomponenten&#39;;
import {thema} aus &#39;../src/styles/theme&#39;;

exportieren const dekoratoren = [
  (Geschichte) => (
    <TheeProvider thema = {thema}>
      <geschichte />
    </Themeneprovider>
  ),
];

Jetzt werden alle Komponenten mit konsequentem Styling.


6. Tests und Automatisierung hinzufügen

Ein robustes Designsystem benötigt Tests. Kombinieren:

  • Scherzreakt -Testbibliothek für Einheiten- und Verhaltenstests.
  • Chromatisch (ein Storybook-Add-On) für visuelle Regressionstests.

Chromatisch installieren:

 npx chromatic --Project-token = <UR-token>

Es läuft in CI und vergleicht jede Geschichte mit früheren Versionen, wobei unbeabsichtigte visuelle Veränderungen erfasst werden.

Erwägen Sie auch , A11Y -Addon hinzuzufügen, um Probleme mit der Zugänglichkeit zu fangen:

 npm install @storybook/addon-a11y

Aktivieren Sie es dann in .storybook/main.js :

 Addons: [&#39;@storybook/addon-a11y&#39;];

Jetzt sehen Sie eine Registerkarte "Barrierefreiheit" in der Benutzeroberfläche mit automatisierten Schecks.


Letzte Gedanken

Beim Aufbau eines Designsystems mit Storybook und React geht es nicht nur um Komponenten, sondern um eine gemeinsame Sprache zwischen Design und Entwicklung. Mit dem richtigen Setup bekommen Sie:

  • Isolierte Komponentenentwicklung
  • Interaktive Dokumentation
  • Visuelle Tests und Konsistenz
  • Zusammenarbeit-freundliche Schnittstellen

Starten Sie klein (Tasten, Eingaben), erzwingen Sie die Konsistenz frühzeitig und wachsen Sie iterativ. Im Laufe der Zeit wird Ihr Designsystem für Produktteams zu einem Gewaltmultipler.

Grundsätzlich ist das Storybook nicht optional, wenn Sie Reagieren und kümmern sich um UI -Qualität.

Das obige ist der detaillierte Inhalt vonErstellen eines Designsystems mit Storybook und React. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erweiterte bedingte Typen in Typenkripten Erweiterte bedingte Typen in Typenkripten Aug 04, 2025 am 06:32 AM

Die erweiterten Bedingungstypen von TypeScript implementieren logische Beurteilung zwischen den Typen über textendu? X: y syntax. Die Kernfähigkeiten spiegeln sich in den verteilten Bedingungstypen, den Abschluss -Inferenz und der Konstruktion komplexer Typ -Werkzeuge wider. 1. Der bedingte Typ ist in den Parametern mit nötigen Typen verteilt und kann den Gelenktyp automatisch aufteilen, z. 2.. Verwenden Sie die Verteilung, um Filter- und Extraktionsinstrumente zu erstellen: Ausschließen Typen über Textendsu? Nie: t, extrahieren Gemeinsamkeiten durch textendu? 3

Erzeugen Sie gelöste Doppelschokoladenrätsel: Ein Leitfaden für Datenstrukturen und Algorithmen Erzeugen Sie gelöste Doppelschokoladenrätsel: Ein Leitfaden für Datenstrukturen und Algorithmen Aug 05, 2025 am 08:30 AM

In diesem Artikel wird eingehend untersucht, wie man automatisch lösbare Rätsel für das Doppel-Choco-Puzzlespiel generiert. Wir werden eine effiziente Datenstruktur einführen - ein Zellobjekt basierend auf einem 2D -Gitter, das Grenzinformationen, Farbe und Zustand enthält. Auf dieser Basis werden wir einen rekursiven Blockerkennungsalgorithmus (ähnlich wie bei der Tiefe-First-Suche) und der Integration in den iterativen Puzzle-Erzeugungsprozess eingehen, um sicherzustellen, dass die erzeugten Rätsel den Spielregeln entsprechen und fehlerhaft sind. Der Artikel bietet Beispielcode und diskutiert wichtige Überlegungen und Optimierungsstrategien im Erzeugungsprozess.

Was ist die Klassensyntax in JavaScript und wie hängt sie mit Prototypen zusammen? Was ist die Klassensyntax in JavaScript und wie hängt sie mit Prototypen zusammen? Aug 03, 2025 pm 04:11 PM

Die Klassensyntax von JavaScript ist syntaktischer Zucker, die durch Prototypen geerbt wurden. 1. Die von der Klasse definierte Klasse ist im Wesentlichen eine Funktion und Methoden werden dem Prototyp hinzugefügt. 2. Die Instanzen suchen Methoden durch die Prototypkette; 3. Die statische Methode gehört zur Klasse selbst; 4. Erweitert die Erbringe durch die Prototypkette, und die zugrunde liegende Schicht verwendet immer noch den Prototypmechanismus. Die Klasse hat die Essenz des JavaScript -Prototyps -Vererbung nicht verändert.

Beherrschen von JavaScript -Array -Methoden: `map`,` filter` und `record` Beherrschen von JavaScript -Array -Methoden: `map`,` filter` und `record` Aug 03, 2025 am 05:54 AM

Die Array -Methoden von JavaScript, Filter und Reduzierung von Array -Methoden werden zum Schreiben von klaren und funktionalen Code verwendet. 1. MAP wird verwendet, um jedes Element in das Array umzuwandeln und ein neues Array zurückzugeben, z. B. Celsius in Fahrenheit umzuwandeln. 2. Filter wird verwendet, um Elemente gemäß den Bedingungen zu filtern und ein neues Array zurückzugeben, das den Bedingungen entspricht, z. B. auch Zahlen oder aktive Benutzer; 3. Reduzierung wird verwendet, um Ergebnisse wie das Summieren oder Zählen der Frequenz zu sammeln, und der Anfangswert muss bereitgestellt und an den Akkumulator zurückgegeben werden. Keiner der drei modifiziert das ursprüngliche Array und kann in der Kette aufgerufen werden, die für die Datenverarbeitung und -konvertierung geeignet ist und die Code -Lesbarkeit und -funktionalität verbessert.

Wie können Sie eine CSS -Klasse mit JavaScript aus einem DOM -Element entfernen? Wie können Sie eine CSS -Klasse mit JavaScript aus einem DOM -Element entfernen? Aug 05, 2025 pm 12:51 PM

Die häufigste und empfohlene Methode zum Entfernen von CSS -Klassen aus DOM -Elementen unter Verwendung von JavaScript ist die Methode von REME () der Classlist -Eigenschaft. 1. Verwenden Sie Element.ClassList.remove ('className'), um einen einzelnen oder mehrere Klassen sicher zu löschen, und es wird kein Fehler gemeldet, selbst wenn die Klasse nicht vorhanden ist. 2. Die alternative Methode besteht darin, die Eigenschaft der Klassenname direkt zu bedienen und die Klasse mit einem String -Austausch zu entfernen. Aufgrund der ungenauen regelmäßigen Übereinstimmung oder einer unsachgemäßen Raumverarbeitung ist es jedoch einfach, Probleme zu verursachen, sodass sie nicht empfohlen wird. 3. Sie können zuerst beurteilen, ob die Klasse existiert, und sie dann durch Element.ClassList.Contains () löschen, aber es ist normalerweise nicht erforderlich. 4. Classlist

Vercel Spa Routing und Ressourcenbelastung: Lösen Sie Probleme mit tiefem URL -Zugriff Vercel Spa Routing und Ressourcenbelastung: Lösen Sie Probleme mit tiefem URL -Zugriff Aug 13, 2025 am 10:18 AM

Dieser Artikel soll das Problem der tiefen URL -Aktualisierung oder des direkten Zugriffs lösen, wodurch die Seitungsressourcenladefehler bei der Bereitstellung von Einzelseiten -Anwendungen (SPAs) auf Vercel verursacht wird. Der Kern besteht darin, den Unterschied zwischen dem Routing -Umschreibmechanismus von Vercel und dem Parsen von Browser -Parsen relative Pfade zu verstehen. Durch die Konfiguration von Vercel.json, um alle Pfade zu index.html umzuleiten und die Referenzmethode der statischen Ressourcen in HTML zu korrigieren, ändern Sie den relativen Pfad in den absoluten Pfad, um sicherzustellen, dass die Anwendung alle Ressourcen korrekt unter eine URL laden kann.

SPA -Bereitstellungshandbuch für Einzel -Seiten -Anwendungen (Vercel Einzelseiten SPA -Bereitstellungshandbuch für Einzel -Seiten -Anwendungen (Vercel Einzelseiten Aug 13, 2025 pm 01:03 PM

Dieses Tutorial zielt darauf ab, das Problem des Ladens von Assets (CSS, JS, Bildern usw.) beim Zugriff auf mehrstufige URLs (wie z. B. /Projekte /Home) bei der Bereitstellung von Einzelseiten-Anwendungen (SPAS) auf Vercel zu lösen. Der Kern liegt darin, den Unterschied zwischen dem Routing -Umschreibmechanismus von Vercel und den relativen/absoluten Wegen in HTML zu verstehen. Stellen Sie durch die korrekte Konfiguration von Vercel.json sicher, dass alle nicht-file-Anfragen in Index.html umgeleitet werden und die Vermögensreferenzen in HTML als absolute Pfade korrigieren, wodurch ein stabiler Betrieb von Spa in jeder Tiefen-URL erreicht wird.

JavaScript -Leistungsoptimierung: Über die Grundlagen hinaus JavaScript -Leistungsoptimierung: Über die Grundlagen hinaus Aug 03, 2025 pm 04:17 PM

OptimizeObjectShapesByInitializingPropertieSconsistenytomaintainHiddenclassesinjavascriptengines.2.ReduceGecollectionpressRexyReusesObjects, vermeiden lineObjectcreation und Usuptypedarrays

See all articles