Die Kombination aus LiveView und Svelte
- LiveView bietet eine einzigartige Methode zum Aufbau von Webanwendungen.
- Der Server hält den Zustand, verarbeitet das Frontend-Verhalten im Backend und aktualisiert das DOM schrittweise.
- Die Komplexität von SPAs entsteht durch die Komplexität verteilter Systeme, und LiveView ermöglicht ein reichhaltiges Client-Erlebnis ohne Frontend-Microservices.
Was an LiveView schwierig ist
- Client-seitiger Zustand ist unvermeidlich, und Latenz zwischen Server und Nutzer lässt sich nicht vermeiden.
- LiveView übernimmt viele DOM-Änderungen auf dem Server, kann aber nicht alles kontrollieren.
- LiveView hat drei Komponententypen: LiveViews, LiveComponents und Components.
- Refactorings zwischen LiveView und LiveComponents sind umständlicher als erwartet.
Die etwas unklare Ausrichtung von LiveView
- LiveView vermittelt oft das Gefühl, dass etwas fehlt.
- LiveView hat viele Gemeinsamkeiten mit modernen Frontend-Frameworks, aber man muss die Unterschiede erkennen und Probleme anders angehen.
LiveView + Svelte
- LiveSvelte ermöglicht das Rendern von Svelte-Komponenten in LiveView.
- Das Backend steuert die Props der Frontend-Komponenten, und sowohl Frontend als auch Backend besitzen Zustand.
- Es gibt einen privaten, bidirektionalen Kommunikationskanal zwischen Frontend und Backend.
Die innovativen Eigenschaften von LiveSvelte
- Die Aufgabenteilung zwischen Backend und Frontend ist klar, und die Komplexität konzentriert sich auf die Serverseite.
- LiveView spielt seine Stärken besonders als Frontend für das Backend aus und stellt einen Backend-Prozess bereit, der Frontend-Komponenten rendert und ihren Zustand erhält.
Meinung von GN⁺
- Die Kombination aus LiveView und Svelte trennt das Zustandsmanagement zwischen Server und Client effizient und ermöglicht es Entwicklern, Anwendungen schneller und intuitiver zu erstellen.
- Diese Technik kann besonders für Webanwendungen nützlich sein, bei denen Echtzeit-Interaktionen wichtig sind, und zur Verbesserung der User Experience beitragen.
- Da Latenz zum Server jedoch die User Experience beeinflussen kann, sind Performance-Optimierung und eine regionale Serverplatzierung wichtige Aspekte.
- Die Kombination aus LiveView und Svelte bietet Entwicklern, die an klassische SPA-Entwicklung gewöhnt sind, ein neues Paradigma, das das Potenzial hat, die Lernkurve zu senken und die Entwicklungseffizienz zu steigern.
- Die von dieser Technik gebotene Echtzeit-Zustandssynchronisierung und bidirektionale Kommunikation kann besonders für Collaboration-Tools, Dashboards oder Anwendungen mit Echtzeitdaten eine attraktive Wahl sein.
1 Kommentare
Hacker-News-Kommentare
Eines der Muster, die in Multiplayer-Videospielen verwendet werden, ist, dass es Code gibt, der grundsätzlich sowohl auf dem Client als auch auf dem Server ausgeführt wird.
Ich habe auf der ElixirConf 2022 einen Vortrag darüber gehalten, wie man LiveView und Svelte kombiniert, und die Mitwirkenden von live_svelte haben dazu beigetragen, dies Realität werden zu lassen.
Wenn neue Zeilen hereinkommen, aktualisiert LiveView den Client, also muss man sie nur in die Tabelle pushen.
In BeaconCMS verwenden wir Svelte zusammen mit LiveView.
Anstatt den Zustand auf dem Client zu verwalten, verwaltet man den Zustand sowohl auf dem Client als auch auf dem Server.
Die Grenze dieses Ansatzes liegt in der Lichtgeschwindigkeit: Es gibt Grenzen dafür, wie nah der Server am Benutzer sein kann.
Als jemand, der LiveSvelte gebaut hat: Wenn ihr Fragen habt, sagt Bescheid.
Im Allgemeinen wollte ich Apps nach diesem Modell bauen: ereignisorientiert, bidirektionale Echtzeit-Updates und Server, geordnete Ereignisse, lokaler und entfernter Zustand ...
Ich verwende in Apps wiederverwendbare Stimulus-Controller zusammen mit LiveView, und auch das funktioniert reibungslos.
Tolles Projekt! Ich habe gerade eine Svelte-Radio-Episode dazu veröffentlicht.