SPA (Single Page Aplication)
SPA significa Single Page Application (Aplicação de Página Única). É um tipo de aplicação web onde o conteúdo é carregado de maneira dinâmica em uma única página HTML, sem a necessidade de recarregar toda a página sempre que o usuário navega ou interage com a aplicação. Após o carregamento inicial, a navegação é mais rápida porque apenas os dados necessários são carregados, em vez de toda a página. Em resumo, uma SPA, é uma aplicação inteira projetada para funcionar como uma única página, onde toda a navegação e interação é gerenciada pelo JavaScript.
Diferença entre SPA e MPA (Multi-Page Application)
| Aspecto | SPA | MPA |
|---|---|---|
| Carregamento | Uma única página HTML. | Múltiplas páginas HTML. |
| Atualização de página | Dinâmica, sem recarregamento. | Recarrega toda a página. |
| Performance inicial | Pode ser mais lenta. | Geralmente mais rápida. |
| SEO | Mais difícil, precisa de ajustes. | Melhor suporte nativo. |
Nesse caso o React é responsavel por inserir o conteúdo nas paginas (por meio do javascript). Quando um componente é renderizado deve ser definido com a Primeira letra Maiuscula, pois, precisa ser diferenciado de tags HTML.
| Exemplo SPA
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
</head>
<body>
<!-- Aqui o conteúdo é inserido por meio do react -->
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Pagina SPA.
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import './index.css'
# Metodo responsavel pela inserção de conteúdo na SPA
ReactDOM.createRoot(document.getElementById('root')).render(
<React.StrictMode>
<!-- Componente renderizado -->
<App />
</React.StrictMode>,
)
Renderiza um conteúdo na página SPA.
function App() {
const message = "Olá Brasil";
return (
<div>
<h1>{message}</h1>
<h2>{message}</h2>
</div>
);
}
export default App;
Este é um arquivo javascript para construção de componentes. Em cada return só é possivel retornar um elemento externo (ex.: Não é possivel retornar duas divs).