DocsBaseado em arquivo

Modo servidor e modo cliente

Um projeto Nexy é renderizado pelo servidor ou roteado pelo cliente, assim como um projeto Next.js são páginas renderizadas no servidor ou em um aplicativo cliente. useCSR em nexyconfig.py escolhe.

Modo servidor (useCSR = False)

nexyconfig.py
from nexy.core.models import NexyConfigModelfrom nexy.frontend import react  class NexyConfig(NexyConfigModel):    useFF = react()
  • As páginas são arquivos .nexy, .md ou .mdx em src/routes/.
  • A raiz layout.nexy possui <!DOCTYPE html>, <html>, <head> e <body>.
  • Componentes cliente (React, Vue, Svelte, Solid ou Preact) são permitidos como ilhas: você importa um de uma página .nexy e ele hidrata no navegador. Veja Ilhas.
  • Um componente cliente nunca é uma rota. Mantenha-os em src/components/.
  • Uma estrutura de cliente por vez.
src/
routes/
layout.nexydocument
index.nexypage
api/users.pyAPI handler
components/Counter.tsx island

Modo cliente (useCSR = True)

nexyconfig.py
class NexyConfig(NexyConfigModel):    useFF = react()    useCSR = True
  • As páginas são os arquivos da sua estrutura cliente: .tsx para React, .vue, .svelte.
  • Os arquivos .md e .mdx permanecem rotas válidas: Nexy os renderiza no servidor dentro do layout do cliente, e o roteador do cliente assume a navegação a partir daí.
  • O layout raiz de qualquer estrutura (layout.tsx, layout.vue, layout.svelte) possui <!DOCTYPE html>, <html>, <head> e <body>, como o layout raiz do Next.js App Router. Nexy renderiza em Node para a primeira resposta e o framework hidrata todo o documento. Consulte layout.tsx.
  • Os arquivos .py são manipuladores de API servidos por FastAPI, próximos às rotas do cliente.
  • Não existe nenhum arquivo .nexy e nenhum layout.nexy.
  • A navegação entre as páginas acontece no navegador.
src/routes/
layout.tsxdocument
index.tsxpage
users.tsxpage
api/users.pyAPI handler

O que é rejeitado

Nexy verifica o projeto antes de nx dev, nx start e nx build e para com a lista de arquivos:

Modo Rejeitado Mensagem
servidor .tsx, .jsx, .vue ou .svelte em src/routes/ mover componentes para src/components/ ou definir useCSR = True
cliente qualquer arquivo .nexy em src/routes/ escreva-os como componentes da estrutura ou defina useCSR = False
ambos mais de uma estrutura de front-end em useFF useFF must configure exactly one frontend framework
cliente useRouter (roteador modular) useCSR requires file-based routing
cliente não useFF useCSR requires a client framework

Arquivos e pastas começando com _ ou . são ignorados por esta verificação.

Qual deles

  • Conteúdo, marketing, documentos, sites SEO-first: modo servidor com ilhas.
  • Painéis e aplicativos com navegação rich client: modo cliente.
  • Uma API Python com um aplicativo cliente na parte superior: modo cliente, com manipuladores .py próximos às páginas.

Próximas etapas

Editar no GitHub

Enter abre o resultado, Esc fecha.