DocsBaseado em arquivo

Roteamento baseado em arquivo

Uma rota é um arquivo. A URL é o caminho do arquivo relativo a src/routes/, menos a extensão.

Arquivo para URL

Arquivo URL
index.nexy /
about.nexy /about
blog/index.nexy /blog
blog/[slug].nexy /blog/{slug}
docs/[...path].nexy /docs/{path:path}
(marketing)/pricing.nexy /pricing
api/users.py /api/users

index mapeia para seu diretório, não para /index. Um diretório entre parênteses é um grupo: ele organiza arquivos sem aparecer na URL.

No modo cliente, os arquivos de página são .tsx, .vue ou .svelte em vez de .nexy; as regras de URL são as mesmas.

Dois arquivos dessa tabela: uma página que lê seu segmento e um manipulador que responde JSON.

src/rotas/blog/[slug].nexy
---slug: prop[str]---<h1>{{ slug }}</h1>
src/routes/api/users.py
async def GET():    return {"users": []}

Dois modos

useCSR decide quais são as páginas. Os dois não podem ser misturados em um projeto: Nexy se recusa a iniciar quando uma página do servidor fica próxima a uma rota do cliente.

Modo Páginas Layout raiz Veja
Servidor (useCSR = False) .nexy, .md, .mdx layout.nexy Modo servidor e modo cliente
Cliente (useCSR = True) arquivos de estrutura layout.tsx layout.tsx

.py arquivos são manipuladores de API em ambos os modos.

A opção é uma linha de nexyconfig.py:

nexyconfig.py
from nexy.core.models import NexyConfigModelfrom nexy.frontend import react  class NexyConfig(NexyConfigModel):    useFF = react()    useCSR = True  # client mode: src/routes/*.tsx are the pages

O que não é uma rota

  • Nomes de arquivos reservados: layout.*, loading.nexy, errors.nexy, notfound.nexy, dependencies.py, middleware.py, __init__.py.
  • Arquivos e pastas começando com _ ou .: use-os para parciais e rascunhos.
  • Extensões que não estão ativas para o seu projeto. Um arquivo cuja extensão está inativa é ignorado com um aviso.
src/routes/
layout.nexywraps the pages, not a route
middleware.pywraps the requests, not a route
index.nexy/
_card.nexya partial: no URL
.draft.nexya draft: no URL

Um arquivo por URL

Dois arquivos que resolvem para o mesmo URL são registrados. Não crie blog.nexy próximo a blog/index.nexy e não misture index.nexy e index.py para o mesmo caminho. Escolha um.

src/routes/
blog.nexy/blog
blog/
index.nexy/blog as well: delete one of the two

Nesta seção

Pasta O que cobre
páginas/ páginas, rotas dinâmicas, grupos de rotas
layouts/ uma página por tipo de arquivo de layout
manipuladores/ .py manipuladores, validação e erros
dependências/ dependencies.py, guardas
intermediário/ middleware.py
erros/ páginas não encontradas e de erro
navegação/ links, ganchos
tempo real/ WebSocket
herança as regras de herança em uma tabela

Próximas etapas

Editar no GitHub

Enter abre o resultado, Esc fecha.