Shawn Wang spricht über RedwoodJS hier
… es ist das erste Mal, dass React-Komponenten in einem einzigen Dateiformat mit expliziten Konventionen ausgedrückt werden.
Was die Idee der RedwoodJS Cells ist. Für mich fühlt es sich an wie eine leicht sauberere Version davon, wie Apollo möchte, dass Sie es mit useQuery tun. Shawn zieht diese Verbindung und ich weiß, dass RedwoodJS Apollo verwendet, daher denke ich, es ist ein netter semantischer Zucker.
Es passiert viel Cooles in RedwoodJS. „Ein sehr meinungsstarker Stack“, wenn man es so betrachten möchte, aber Tom machte in unserer letzten Folge von ShopTalk deutlich, dass er nicht wie Rails ist. Nicht, dass Rails schlecht wäre (das ist es nicht), sondern dass diese neue Welt Dinge auf neue und bessere Weisen tun kann, die für langfristig gesunde Software sorgen.
Was genau sind Single File Components? Ist das nicht etwas, das wir jahrelang für eine schlechte Praxis hielten?
Nicht ganz
Nun, die Leute haben uns gesagt, dass man verschiedene Teile seiner Komponente in separate Dateien aufteilen muss (HTML, CSS, JS), aber in den letzten Jahren mit dem großen Boom von Frameworks, bei denen der primäre UI-Baustein eine Komponente ist, macht es vielleicht nicht immer Sinn, nur um des Teilens willen zu teilen. Es könnte besser sein, das gesamte HTML, CSS und JS in einer einzigen Datei zu haben, da alles an dieselbe Komponente gebunden ist. Wenn Sie an einer einzelnen Komponente arbeiten müssen, müssen Sie nicht 3 verschiedene Dateien in Ihrem Editor geöffnet haben, Sie können nur eine Datei geöffnet haben und daran arbeiten. Dies wurde besonders in React mit dem Aufkommen von CSS-in-JS-Ansätzen für das Styling populär. Vue zum Beispiel hat dies mit seinem Single File Component-Ansatz integriert, bei dem HTML, JS-Logik und CSS-Stile alle zusammen in einer einzigen Datei leben.
Aber es hängt letztendlich auch davon ab, was Sie für den besten Ansatz halten, wenn das Framework keinen bestimmten Ansatz „erzwingt“.
Vue verwendet SFCs. Ich arbeite seit 2 Jahren daran. Ich halte es für eines der besten und einfachsten JS-Frameworks, um den Einstieg zu finden, wenn man einen UI-Hintergrund hat.
Ich denke, wir vergessen oft, dass dies Richtlinien und keine Gesetze sind. Solange wir interpretieren können und die Maschine immer noch performant ist, müssen wir es so machen, wie wir es verstehen und es für uns Sinn macht.
Moment. Verpasse ich etwas? Ich schreibe ständig React, Gatsby, Next und Create React App. Mein CSS, JSX und React sind immer in einer einzigen Datei. Normalerweise Styled Components für CSS.
Ich habe React nicht benutzt, aber für den allgemeinen Gebrauch von Is, HTML und CSS als Datei. Sass kann die Teile der "großen" Idee erfüllen, obwohl die Konvertierungen dort sind, wo die CPU-Fähigkeiten der Anwendung im Browser im Nachteil sind.
Dies erfordert immer noch die Verwendung von CSS-in-JS für Stile, also keine wirkliche Verbesserung gegenüber dem, was in React bereits vorhanden ist.
Die einzigen Frameworks, die dies meiner Erfahrung nach richtig machen, sind Vue und Svelte, da sie es Ihnen ermöglichen, echtes CSS oder SCSS zu schreiben, nicht den Albtraum, den CSS-in-JS darstellt.