React
v5A v5 entrega páginas React pelo protocolo Inertia, no mesmo roteador, sessão, CSRF e handlers de sempre. Views .mucrm.php continuam válidas. React é opcional e vive dentro do tema. Quem preferir Vue usa a pasta vue/, no mesmo handler. Veja Vue.
A rota chama um handler. O handler devolve inertia('Nome', $props). O React do tema ativo desenha essa página.
Rotas
URL, handler, form e validação.
Assets
src(), tema e plugin, o mesmo helper do core.
Páginas e props
Arquivos, dados compartilhados e partial reload.
Layouts
Título da aba e a casca do site, da conta e do painel.
Temas
Pasta do tema ativo e o painel separado.
Vite
Dev server, build e o que o navegador baixa.
O que não muda
- Rotas continuam em
routes/*.phpeapp/modules/*/routes.php, com a facadeuri. - Handlers, middleware, sessão, autenticação e validação são os mesmos.
- Uma página PHP não carrega o bundle React.
Como a visita anda
Browser
→ routes/web.php rota nomeada
→ handler inertia('Welcome', $props)
→ Engine (protocolo) HTML na 1ª visita, JSON nas seguintes
→ themes/{tema}/react página React do tema ativoA primeira visita recebe HTML com data-page. A seguinte manda o header X-Inertia: true e recebe JSONcomponent, props, url e version. O cliente troca a página sem recarregar o documento.
Onde está cada peça
| Peça | Caminho |
|---|---|
| Protocolo Inertia | app/engine/inertia/ |
| Config do Vite | config/inertia.php |
| Tema ativo | config/system.php → theme |
| Entrada React | app/engine/inertia/app.jsx |
| Páginas | themes/{tema}/react/pages/ e app/modules/{plugin}/views/react/ |
| Build publicado | public/build/ |