Next.js URL Split Screen
Im Next.js App Router wird nur die URL angegeben, um die page.tsx auf dem Server zu rendern und in ein neues Pane von FlexLayoutSplitScreen zu ziehen.
Ablauf
Das allgemeine FlexLayout ist wie gewohnt für Layout und Größenänderung zuständig, während die dynamische Teilung von FlexLayoutSplitScreen übernommen wird. Der spezielle Einstiegspunkt für Next.js interpretiert die URL des DragBox als generiertes Registry, rendert die page.tsx auf dem Server und überträgt das Ergebnis in das entsprechende Split-Pane.
1. Registry erstellen
Stellen Sie nur den App-Pfad und den Ausgabepfad oben im Skript Ihres Projekts ein. Das Ergebnis ist ein statisches Import-Registry, das die Route-Gruppe und dynamische Segmente interpretieren kann, wobei der Standardexport FlexLayoutNextSplitScreen ist.
scripts/generateFlexLayoutSplitScreenPageRegistry.mjs
js2. Anwendung von FlexLayoutNextSplitScreen
FlexLayoutNextSplitScreen ist ein Next.js-spezifischer Wrapper, der das serverseitige Rendering des URL-Panels mit dem generierten Page-Registry bereitstellt. Es muss einmal um den FlexLayoutSplitScreen-Baum gewickelt werden, der das URL-basierte Panel erhält.
3. Wiederherstellung der URL-Panel-Aktualisierung
Wenn persistence angegeben ist, werden nur die serialisierbaren Metadaten wie URL, screenKey, containerName, navigationTitle und die Struktur gespeichert, nicht das ReactElement selbst. Wenn restoreOnReload false ist, wird persistence nicht verwendet, und wenn syncWithBrowserUrl true ist, wird ein Snapshot für jede URL basierend auf pathname + search gespeichert. Bei Zurück/Weiter oder erneutem Besuch derselben URL wird der gesamte URL-basierte Split-Zustand dieser URL wiederhergestellt, und beim Aktualisieren wird der aktuelle URL-Snapshot wiederhergestellt.
4. DragBox übergibt nur die URL
Die Next.js-spezifische DragBox benötigt nur die URL und erfordert nicht die direkte Erstellung eines targetComponent. Wenn ein targetComponent angegeben wird, hat die bestehende Methode Vorrang, und das entsprechende Pane wird von der Persistence ausgeschlossen.
5. iframe ist optional
Der Standardwert für iframe ist false. Setzen Sie iframe nur auf true, wenn eine externe URL oder ein unabhängiger Dokumentkontext erforderlich ist. Der iframe-Modus benötigt kein Page-Registry von FlexLayoutNextSplitScreen und wird auch von der Persistence ausgeschlossen.
Einschränkungen des Router-Kontexts
Auf dem Serverpage werden die aus der URL extrahierten params und searchParams übergeben. Da das Split-Pane jedoch kein separater Next Router ist, funktionieren die usePathname, useParams und useSearchParams des internen Client Components basierend auf der tatsächlichen URL des Browsers.