Rolando para âncoras com Vue Router
Dec 05 2020
Preciso de um link de âncora configurado em vuejs para ir para:
<h1 id="apply">Test anchor</h1>
O seguinte funciona, mas muda o url para http: // localhost: 8080 / # / apply
<a href="#apply" class="btn btn-primary mt-3">Apply Now</a>
Se eu atualizar a página, ela não saberá para onde ir.
O seguinte também não funciona para mim. Ele nem mesmo desce para #apply.
<router-link to="/careers/job-1#apply">test</router-link>
Como configuro links de âncora com o roteamento vuejs?
Respostas
1 Dan Dec 05 2020 at 07:51
Adicione um path
e uma hash
propriedade ao seu to
objeto:
<router-link :to="{ path: '/careers/job-1', hash: '#apply' }">test</router-link>
E adicione scrollBehavior
à sua definição de roteador:
const router = new VueRouter({
...
scrollBehavior (to, from, savedPosition) {
if (to.hash) {
return {
selector: to.hash,
behavior: 'smooth'
};
}
return { x: 0, y: 0 }; // Go to the top of the page if no hash
},
...
})
Agora ele deve rolar (suavemente, a menos que você remova essa behavior
propriedade) para a âncora definida pelo hash
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino