Erstellen eines Designsystems mit Storybook und React
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.
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.

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:

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.

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: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'], // ... };
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: '#007BFF', sekundär: '#6c757d', }, Abstand: (Faktor) => `$ {0,5 * Faktor} Rem`,, Typografie: { Überschrift: 'BOLD 1.5REM SYSTEM-UI', }, };
Wickeln Sie Ihre Geschichten mit einem Dekorateur, um das Thema weltweit in .storybook/preview.js
anzuwenden:
importieren {themeProvider} aus 'Stilkomponenten'; import {thema} aus '../src/styles/theme'; 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: ['@storybook/addon-a11y'];
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!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

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

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.

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.

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.

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

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.

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.

OptimizeObjectShapesByInitializingPropertieSconsistenytomaintainHiddenclassesinjavascriptengines.2.ReduceGecollectionpressRexyReusesObjects, vermeiden lineObjectcreation und Usuptypedarrays
