Stil-Komponenten-Organisation
Will ich mit Stil-Komponenten in meine app und ich Frage mich, wie Sie zu organisieren.
Im Grunde Stil-Komponenten zugeordnet sind, um bestimmte Komponente auf Wiederverwendbarkeit.
Aber was ist Stil-Komponenten, die ich verwenden möchten, die viele Male in anderen Komponenten (zum Beispiel Animationen Komponenten)?
Soll ich eine Datei erstellen, wo ich immer diese 'globalen' Stil-Komponenten importieren und es zu viele Komponenten?
Ist es gute Praxis?
- Ich benutze nur eine Komponente pro-Datei Weg. Es ist bequem zu halten-Komponenten getrennt und ermöglicht den Import von nur Komponenten, die Sie benötigen, anstatt alle Dateien.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was die meisten meiner großen Produktions-Anwendungen, die mit Stil-Komponenten Aussehen:
Den
App
Ordner enthält alle die Komponenten, aus denen Ihre größere Anwendung. (Sie können die Struktur, die durch die route in Ihrem realen app), die Jeweils die wichtigeren Komponenten ist ein Ordner mit einerindex.js
- Datei und eine Reihe von style-Komponenten in einzelne Dateien.Während ich mit dem Aufbau meiner Anwendung, und ich merke, ich brauche eine Stil-Komponente aus einer größeren Komponente in einer anderen größeren Komponente, die ich ziehen Sie die Datei, um die
shared/
Ordner, update alle Importe und das ist es! Im Laufe der Zeitshared/
wird ein improptu-Muster-Bibliothek, die mit allen Komponenten die ich will/brauche, um die Wiederverwendung durch mein gesamtes app.Einen anderen Weg, dass ist ziemlich normal ist
style.js
Dateien in den Komponenten-Ordner enthält alle von der Stil-Komponenten, die Komponente. Der Vorteil ist, dass Sie weniger Dateien, die sich in deinen Weg, aber mit dem Nachteil, dass es schwieriger ist zu bemerken, Vervielfältigung und bewegliche Komponenten in den freigegebenen Ordner ist mehr Arbeit.Ich persönlich benutze die erste version mehr als oft nicht, aber das ist wahrscheinlich nur eine Frage des Geschmacks—versuchen Sie beide und sehen, welche Sie gerne mehr!
<div>
wrapper in Ihren Vorlagen, das wäre ein overkill. Was werden Sie Vorschläge für diesen Punkt?Können Sie auch versuchen,Atomic Design, um die Struktur der app. Auf diese Weise werden Sie in der Lage, die Wiederverwendung von Ihnen gestalteten Komponenten. Basierend auf Atomic-Design-Methodik, die Ihnen bei der Organisation Ihrer Bestandteile in Atome, Moleküle, Organismen, Seiten und Vorlagen.
Atom
Eines atoms native html-tag. Zum Beispiel ein Input-element kann ein Atom
Moleküle
Gruppe von Atomen ist ein Molekül. Zum Beispiel:
Organismen
Organismus ist eine Gruppe von Atomen, Molekülen und/oder anderen Organismen. Zum Beispiel:
Seiten
Einer Seite ist, wo Sie setzen meist Organismen. Zum Beispiel:
Vorlagen
Ein template ist eine layout verwendet werden, auf den Seiten. Zum Beispiel:
Github Beispiel
Es ist ein Reagieren starter-Projekt auf Github verwendet, Atomic-Design-Methodik mit Stil-Komponenten-integration. Hier ist die Link.
Den Weg organisiere ich mein Projekt mit Stil-Komponente ist die folgende:
Argumentation:
.jsx
stellen eine Layout-Komponente.styled.js
sind Stil-Komponenten. Verwalten Sie nur, wie die Komponenten Aussehen. Auch jedes Thema im Zusammenhang-Datei importiert werden soll hier, wie Farben,borderStyles, etc.container.js
Wenn wir mit jedem Staat, der management-wir sollten ein Artefakt, das die Anbindung unserer Komponenten mit, dass die Bibliothek. In diesem Fall Redux.index.js
Exporte, was relevant ist.Den Vorteil, dass ich mit diesem Ansatz ist, dass ist ziemlich klar, wo änderungen vorgenommen werden müssen, wenn Sie sich entscheiden, eine andere zu verwenden CSSinJS Bibliothek.
Hoffe, dass es Sinn machen für jemand anderen.
Prost!