DocsEntenda o modelo
Estrutura do projeto
Cada arquivo em um projeto Nexy tem um trabalho, e para onde ele vai depende do roteador: src/routes/ para roteamento baseado em arquivo, src/apps/ para o roteador modular.
Nível superior
nexy new)Para escolher uma pasta, pergunte qual é o arquivo:
- Algo que o navegador pode abrir - uma rota:
src/routes/. - Uma peça usada por diversas rotas - um componente ou módulo:
src/components/,src/. - Um arquivo servido como está -
public/. - Gerado -
__nexy__/; nunca edite.
nexy new)Para escolher uma pasta, pergunte qual é o arquivo:
- Uma URL - método de um controlador em
src/apps/, registrado por seu módulo. - Uma página - uma visualização
.nexypróxima ao seu controlador, retornada comuseViews. - Uma peça usada por diversas visualizações -
src/components/. - Um arquivo servido como está -
public/. - Gerado -
__nexy__/; nunca edite.
nexy new)Para escolher uma pasta, pergunte qual é o arquivo:
- Uma rota do aplicativo incluído - onde já está, aqui
src/legacy/. - Uma nova página ou rota -
src/routes/, próxima ao roteador incluído. - Um arquivo servido como está -
public/. - Gerado -
__nexy__/; nunca edite.
src/routes/
Cada arquivo se torna uma rota, exceto os nomes reservados abaixo. O caminho do arquivo menos a extensão é o URL - consulte roteamento baseado em arquivo.
| Arquivo | Função |
|---|---|
layout.nexy |
envolve páginas irmãs e filhas |
errors.nexy |
500 páginas para o diretório |
notfound.nexy |
Página 404 para o diretório |
dependencies.py |
dependências compartilhadas FastAPI para o diretório |
__init__.py |
Python marcador de pacote |
loading.nexy |
reservado - excluído das rotas, mas ainda não tem efeito de tempo de execução |
Cada nome de página também existe por estrutura. Com react() configurado, layout.jsx e layout.tsx são reservados exatamente como layout.nexy. As listas são construídas em nexy/core/config.py (LAYOUT_FILE_NAMES, ERROR_FILE_NAMES, NOTFOUND_FILE_NAMES, LOADING_FILE_NAMES).
src/apps/
Um controlador responde URLs, um módulo agrupa controladores e provedores e o módulo raiz é montado com useRouter em nexyconfig.py:
from nexy.decorators import Controllerfrom nexy.hooks import useViews LAYOUT = "src/apps/layout.nexy" @Controller()class AppController: async def get(self): return useViews(LAYOUT, context={"children": useViews("src/apps/app_view.nexy")})from nexy.decorators import Module from .app_controller import AppController @Module()class AppModule: controllers = [AppController]from nexy.core.models import NexyConfigModel from src.apps.app_module import AppModule class NexyConfig(NexyConfigModel): useRouter = AppModule useAliases = {"@": "src"} # the views import @/components/...Nenhum arquivo em src/apps/ é uma rota pelo seu nome: apenas os controladores que um módulo lista respondem. Consulte roteamento modular.
public/
Os arquivos aqui são servidos a partir da raiz do site: /favicon.ico, /robots.txt, imagens, fontes.
__nexy__/
Gerado por nx build (e por nx dev para as peças necessárias). Ele contém:
- os arquivos
.nexycompilados, como um pacote Python (__nexy__/src/...); - os pontos de entrada do cliente gerados (
main.ts,vite.ts,*.auto.ts); client/após uma compilação Vite - ativos, manifesto, HTML pré-renderizado;build-cache.json.
Trate todo o diretório como descartável: exclua-o e reconstrua-o. Editá-lo manualmente perde a alteração na próxima compilação. Adicione-o a .gitignore.
Próximas etapas
- Roteamento baseado em arquivo: como um caminho se torna uma URL
- Roteamento modular: controladores, módulos e provedores
- Roteamento personalizado: inclua um roteador FastAPI existente
- Configuração: todas as opções do projeto
- Frontend: Vite, estilo e construção do cliente