Introdução ao Roteamento e Definição de Rotas no Vue 3
Uma das funcionalidades essenciais em aplicações web é a configuração de rotas. O Vue 3 possui um sistema de roteamento completo, que permite associar requisições a componentes específicos. Esse sistema é fornecido pela biblioteca vue-router
vue-router
No exemplo a seguir, é construída um aplicação simples que utiliza rotas. O arquivo index.html
<!DOCTYPE html>
<html>
<head>
<title>Roteamento no Vue 3</title>
<meta charset="utf-8" />
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-router"></script>
</head>
<body>
<div id="app">
<h1>Vue Routing</h1>
<router-view></router-view>
</div>
<script>
const Home = { template: '<h2>Home Page</h2>' }
const About = { template: '<h2>About Page</h2>' }
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About }
];
const router = VueRouter.createRouter({
history: VueRouter.createWebHistory(),
routes,
});
const app = Vue.createApp({});
app.use(router);
app.mount('#app');
</script>
</body>
</html>
Para que o roteamento funcione, é necessário carregar a biblioteca vue-router
Dois componentes são definidos: Home
About
path
A rota com path: '/'
Home
path: '/about'
About
O roteador é criado com a função VueRouter.createRouter()
vue-router
history
routes
O valor de history
VueRouter.createWebHistory()
#
A configuração routes
O roteador é registrado na aplicação com app.use(router)
<router-view>
O roteamento requer que a aplicação seja executada em um servidor. Abrir o arquivo HTML diretamente no navegador não permite o funcionamento completo da navegação. Para esse exemplo, é utilizado o Node.js como servidor local, uma opção simples e acessível. No entanto, outras soluções também são compatíveis, como servidores web IIS e Apache, ou tecnologias de back-end como ASP.NET, PHP, Django, Ruby e JakartaEE.
Servidor com Node.js
Antes de tudo, é necessário instalar o Node.js. Esse processo está detalhado no artigo O que é Node.js: introdução.
Com o Node.js instalado, crie um novo arquivo chamado app.js
index.html
const http = require("http");
const fs = require("fs");
http.createServer((request, response) => {
fs.readFile("index.html", function(error, data) {
if (error) {
response.end("Erro ao ler o arquivo!");
} else {
response.end(data);
}
});
}).listen(3000, function() {
console.log("Servidor iniciado na porta 3000");
});
O módulo http
fs
A função http.createServer()
request
response
Por fim, o método listen()
cd
node app.js
Após a execução, o terminal exibirá a mensagem "Server started at 3000"
http://localhost:3000/
Ao acessar essa URL, a rota /
Home

Se o caminho acessado for /about
About

Resumo
O roteamento em aplicações Vue 3 é realizado com a biblioteca
, que fornece um sistema completo para associar caminhos a componentes.vue-router
A estrutura de roteamento no Vue 3, junto com a versão 4 do vue-router, apresenta diferenças em relação à versão anterior utilizada no Vue 2.
Cada rota é composta por um caminho (
) e por um componente (path
) que será exibido quando aquele caminho for acessado.component
A função
é utilizada para configurar o roteador da aplicação, que recebe uma lista de rotas e uma estratégia de navegação.createRouter
O componente
atua como ponto de renderização dinâmica, exibindo o componente correspondente à rota atual.<router-view>
O roteador precisa ser registrado na instância principal da aplicação Vue com
para que a navegação funcione corretamente.app.use(router)