Feliz: Schneedecke und Reagieren-Aktualisieren-Frage

Erstellt am 28. Sept. 2020  ·  4Kommentare  ·  Quelle: Zaid-Ajaj/Feliz

Hey @Zaid-Ajaj
Ich spiele mit Schneedecke herum und habe eine fast refresh bezogene Frage.

Zusamenfassend:

  • Snowpack-Entwicklungsserver verwendet react-refresh
  • Ziel ist es, dies in Kombination mit fable-splitter , F# zu js zu kompilieren und Snowpick nimmt es einfach wie jede andere JS-Datei auf.
  • Beispiel: https://github.com/nojaf/snowpack-fable-bug
  • Die normale Aktualisierung der Fable-Komponenten wird aufgenommen. ( Sun Komponente)
  • Feliz Bindungskomponente nicht. ( Moon Komponente)
  • Zugehörige Unterhaltung über die Schneedecke: https://github.com/pikapkg/snowpack/discussions/1139

Irgendwelche Gedanken? Was Feliz macht, ist so anders als das, was Fable.React tut.

Hilfreichster Kommentar

Dies sieht in der Tat nach einem sehr guten Anwendungsfall für Plugins aus! Es gibt bereits eine Alpha-Version von Nagareyama (Fable 3) und ich teste sie gerade mit einigen Produktionsprojekten, um Probleme zu polieren und eine informelle Ankündigung mit Upgrade-Anweisungen zu machen. Als nächstes kommen Plugins, die meisten Vorbereitungsarbeiten (das AST aufräumen und von FCS unabhängig machen) sind bereits erledigt und es gibt bereits einen POC für Fable 2, also sollte es hoffentlich nicht viel Zeit in Anspruch nehmen. Sobald es fertig ist, melde ich mich bei dir, damit wir es mit Fast-Refresh testen können 👍

Alle 4 Kommentare

Hallo Florian, dies ist das gleiche Problem , das Feliz daran hindert, fast-refresh vollständig zu nutzen, egal ob mit Schneedecke oder Webpack. Das Problem liegt darin, wie der generierte Code aussieht und wie die Schnellaktualisierung ihn tatsächlich aufnimmt. Es gibt spezielle Anforderungen, die der generierte Code nicht erfüllt, um abgeholt zu werden: die Wertdefinition der Funktionskomponente muss in Großbuchstaben sein (dh die let-Bindung), die Definition muss eine Definition auf Modulebene sein, die Verwendung von IIFEs im generierten Code, die dazu führen, dass die Komponente ihre ursprüngliche Referenz verliert, und andere Dinge, die hier gründlich diskutiert

Wie kann man dieses Problem lösen? Das Generieren einer React-Ausgabe, die schnell aktualisiert werden kann, ist im Grunde eine vereinfachte Version dessen, was Fable derzeit tut. Ist das jetzt möglich? Nein, wir können die Funktionsweise von Fable mit Bindungen nicht ändern. JEDOCH arbeitet daran , Plugins zurückzubringen, die es mir ermöglichen sollten, ein internes Fable-Plugin zu erstellen, das das Generierte in etwas umschreibt, das mit der schnellen Aktualisierung ordnungsgemäß funktioniert. Ich warte auf eine Alpha-Version mit Plugin-Unterstützung, um mit den ASTs zu jonglieren

Das ist interessant. Wenn man sich den Quellcode für Fable.React ansieht, scheint dies ein Nebeneffekt der Caching-Implementierung zu sein.

@Zaid-Ajaj und ich haben viel gebastelt, um es zum Laufen zu bringen, und es ist derzeit nicht wirklich erreichbar, während es benutzerfreundlich ist. Sie können die Diskussionen in diesen beiden Ausgaben #157 und #203 sehen.

Mit Fable 3 (hoffentlich) bald und der Implementierung eines Plugin-Systems werden wir den Feliz-Code wahrscheinlich in tatsächliches jsx kompilieren und sollten sofort einsatzbereit sein, ohne dass der Benutzer wirklich darüber nachdenkt.

Dies sieht in der Tat nach einem sehr guten Anwendungsfall für Plugins aus! Es gibt bereits eine Alpha-Version von Nagareyama (Fable 3) und ich teste sie gerade mit einigen Produktionsprojekten, um Probleme zu polieren und eine informelle Ankündigung mit Upgrade-Anweisungen zu machen. Als nächstes kommen Plugins, die meisten Vorbereitungsarbeiten (das AST aufräumen und von FCS unabhängig machen) sind bereits erledigt und es gibt bereits einen POC für Fable 2, also sollte es hoffentlich nicht viel Zeit in Anspruch nehmen. Sobald es fertig ist, melde ich mich bei dir, damit wir es mit Fast-Refresh testen können 👍

Hallo zusammen, danke für die ausführliche Erklärung!
Freue mich auf Nagareyama, spannende Zeiten.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen