0Pricing
Vue Academy · Aula

Configuração do comportamento de rolagem

scrollBehavior(to, from, savedPosition), rolagem suave, rolagem até o hash e restauração da posição.

Configuração do comportamento de rolagem é uma aula grátis de Vue Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Vue Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Vue Academy inclui 4 aulas no total.

Controlando a rolagem durante a navegação

Em um aplicativo de página única, a página não é recarregada; portanto, o navegador não redefine a rolagem por você. A função scrollBehavior do Vue Router permite decidir para onde a página rola após cada navegação.

Onde ela fica

Informe scrollBehavior ao criar o roteador. Ela é executada em cada navegação.

const router = createRouter({
  history: createWebHistory(),
  routes,
  scrollBehavior(to, from, savedPosition) {
    // return a position
  }
})

Os três parâmetros

Ela recebe to (rota de destino), from (rota atual) e savedPosition. O último só é diferente de nulo ao navegar pelos botões voltar e avançar do navegador.

Rolando para o topo em novas rotas

O comportamento mais simples: role para o topo sempre que o usuário navegar para uma nova página.

scrollBehavior(to, from, savedPosition) {
  return { top: 0 }
}

Restaurando a posição ao voltar

Quando savedPosition existe, retorne-o para que o botão voltar leve o usuário exatamente ao ponto em que estava — reproduzindo o comportamento nativo do navegador.

scrollBehavior(to, from, savedPosition) {
  if (savedPosition) {
    return savedPosition
  }
  return { top: 0 }
}

Por que savedPosition é importante

Sem restaurar savedPosition, pressionar voltar levaria o usuário ao topo de uma lista longa pela qual ele havia rolado. Retorná-lo preserva a posição.

Rolando até uma âncora

Se a URL de destino tiver uma âncora como #section, role até esse elemento retornando um seletor el.

scrollBehavior(to) {
  if (to.hash) {
    return { el: to.hash }
  }
  return { top: 0 }
}

Rolagem suave

Adicione behavior: 'smooth' para animar a rolagem em vez de saltar instantaneamente.

scrollBehavior(to) {
  if (to.hash) {
    return { el: to.hash, behavior: 'smooth' }
  }
}

Compensando um cabeçalho fixo

Um cabeçalho fixo pode cobrir a âncora de destino. Adicione top como deslocamento para que o elemento fique abaixo do cabeçalho.

scrollBehavior(to) {
  if (to.hash) {
    return { el: to.hash, top: 80 }
  }
}

Atrasando a rolagem

Se o conteúdo for carregado de forma assíncrona, retorne uma Promise que seja resolvida com a posição após um atraso, para que o destino exista quando a rolagem for executada.

scrollBehavior(to, from, savedPosition) {
  return new Promise((resolve) => {
    setTimeout(() => resolve({ top: 0 }), 300)
  })
}

Combinando as regras

Um manipulador completo prioriza a posição salva, depois as âncoras da URL e, por fim, usa o topo como padrão.

scrollBehavior(to, from, savedPosition) {
  if (savedPosition) return savedPosition
  if (to.hash) return { el: to.hash, behavior: 'smooth' }
  return { top: 0 }
}

Verificação rápida

Teste seus conhecimentos sobre o comportamento da rolagem.

Recapitulação

scrollBehavior controla a rolagem durante a navegação:

  • Recebe to, from e savedPosition.
  • Retorne savedPosition para restaurar a posição do botão voltar.
  • Retorne { el: to.hash } para rolar até uma âncora.
  • Retorne { top: 0 } para novas navegações a novas rotas.

Perguntas Frequentes

A aula “Configuração do comportamento de rolagem” é grátis?

Sim — o texto completo de “Configuração do comportamento de rolagem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Vue Academy, atualize para CoddyKit PRO. O curso de Vue Academy inclui 4 aulas no total.

O que vou aprender em “Configuração do comportamento de rolagem”?

scrollBehavior(to, from, savedPosition), rolagem suave, rolagem até o hash e restauração da posição. Você pratica Vue Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Vue Academy?

Nenhuma experiência prévia é necessária. Vue Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Configuração do comportamento de rolagem”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Vue Academy?

Sim. Cada aula de Vue Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Campos meta de rotas e tipagem
  2. Transições e animações de rotas
  3. Configuração do comportamento de rolagem
  4. Navegação programática e useRouter
← Voltar para Vue Academy