Executando verificação de segurança...
3

Opa, estou bem e você? Gostei dos questionamentos, espero que consiga te ajudar a entender!

Na verdade não seria o mesmo que loading.tsx. O loading é um carregamento 'dentro' do arquivo que você quer renderizar, geralmente usado quado o arquivo ainda não terminou de ser montado completamente.
O objetivo da minha lib é lidar com a transição das rotas!
Quando se clica em um <Link /> apesar de ser rapido as vezes, ainda pode ou não ter delay, e é nesse caso que se faz necessário uma animação de loading/progress loading, por exemplo.

Agora a outra duvida sobre performace, e tall...
Atualmente no Next.js existem algumas formas de você acessar uma rota:

  • Digitando a url
  • Fazendo o direcionamento com a tag
  • Fazendo o uso do hook useRouter()

O que minha biblioteca faz é monitorar quando uma tag link é clicada no seu projeto, por isso ela á iria funcionar 'sempre'.
E quando eu registro um <ContainerLink />, seja em uma rota especifica, ou seja globalmente, tudo o que estou fazendo é criando todos os que você disse precisar.
Então isso não atrapalha o recurso PREFETCH do Next.Js, já que as rotas já estão disponiveis no seu navegador, em algum lugar.
Tudo que o changeRoute() irá fazer é apenas chamar um evento para clicar naquele link que tu queria, de uma meneira bem facilitada.

Então, na verdade a minha lib não atrapalha a performace, ela até melhora se parar para pensar!

O atual useRouter() oferece uma maneira de mudar rotas, mas nenhuma animação aparece na tela mostrando ao usuario que alguma coisa esta acontecendo, já que o recurso de eventos foi depreciado.
O que minha lib oferece com o changeRoute() é justamente isso, uma maneira de você poder transicionar de telas, susbistuindo muitos casos de uso do useRouter() para trocar de rota, e ainda ter uma animação.

Novamente dizendo, quando se registra um <ContainerLink /> é quando você quer chamar uma rota com changeRoute(), com a animação, sem ser diretamente atraves de um tag , que nesses casos, seria quando a pessoa faria o usuo do useRouter(). Chamando uma rota com função.

Realmente espero que consegui esclarecer suas dúvidas, mas se algo ainda ficou nebuloso. Pfv, me pergunte! Abraço

Carregando publicação patrocinada...