DokuDateibasiert

Servermodus und Clientmodus

Ein Nexy-Projekt wird entweder vom Server gerendert oder vom Client weitergeleitet, so wie ein Next.js-Projekt entweder auf dem Server gerenderte Seiten oder eine Client-App ist. useCSR in nexyconfig.py wählt.

Servermodus (useCSR = False)

nexyconfig.py
from nexy.core.models import NexyConfigModelfrom nexy.frontend import react  class NexyConfig(NexyConfigModel):    useFF = react()
  • Seiten sind .nexy-, .md- oder .mdx-Dateien unter src/routes/.
  • Die Wurzel layout.nexy besitzt <!DOCTYPE html>, <html>, <head> und <body>.
  • Client-Komponenten (React, Vue, Svelte, Solid oder Preact) sind als Inseln zulässig: Sie importieren eine von einer .nexy-Seite und sie wird im Browser angezeigt. Siehe Inseln.
  • Eine Clientkomponente ist niemals eine Route. Bewahren Sie sie in src/components/ auf.
  • Jeweils ein Client-Framework.
src/
routes/
layout.nexydocument
index.nexypage
api/users.pyAPI handler
components/Counter.tsx island

Client-Modus (useCSR = True)

nexyconfig.py
class NexyConfig(NexyConfigModel):    useFF = react()    useCSR = True
  • Seiten sind die Dateien Ihres Client-Frameworks: .tsx für React, .vue, .svelte.
  • .md- und .mdx-Dateien bleiben gültige Routen: Nexy rendert sie auf dem Server im Client-Layout und der Client-Router übernimmt von dort aus die Navigation.
  • Das Root-Layout eines beliebigen Frameworks (layout.tsx, layout.vue, layout.svelte) besitzt <!DOCTYPE html>, <html>, <head> und <body>, wie das Root-Layout des Next.js App Routers. Nexy rendert es in Node für die erste Antwort und das Framework hydratisiert das gesamte Dokument. Siehe layout.tsx.
  • .py-Dateien sind API-Handler, die von FastAPI neben den Client-Routen bereitgestellt werden.
  • Es gibt überhaupt keine .nexy-Datei und keine layout.nexy.
  • Die Navigation zwischen den Seiten erfolgt im Browser.
src/routes/
layout.tsxdocument
index.tsxpage
users.tsxpage
api/users.pyAPI handler

Was wird abgelehnt

Nexy prüft das Projekt vor nx dev, nx start und nx build und stoppt mit der Liste der Dateien:

Modus Abgelehnt Nachricht
Server .tsx, .jsx, .vue oder .svelte unter src/routes/ Komponenten nach src/components/ verschieben oder useCSR = True festlegen
Kunde jede .nexy-Datei unter src/routes/ Schreiben Sie sie als Framework-Komponenten oder legen Sie fest useCSR = False
beides mehr als ein Frontend-Framework in useFF useFF must configure exactly one frontend framework
Kunde useRouter (modularer Router) useCSR requires file-based routing
Kunde nein useFF useCSR requires a client framework

Dateien und Ordner, die mit _ oder . beginnen, werden bei dieser Prüfung ignoriert.

Welches

  • Inhalt, Marketing, Dokumente, SEO-First-Sites: Servermodus mit Inseln.
  • Dashboards und Apps mit Rich-Client-Navigation: Client-Modus.
  • Eine Python API mit einer Client-App oben: Client-Modus, mit .py Handlern neben den Seiten.

Nächste Schritte

Auf GitHub bearbeiten

Enter öffnet das Ergebnis, Esc schließt.