Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Adicionando Paginação a um Aplicativo Next.js | Recursos Avançados do Next.js e Otimizações
Domínio do Next.js 14 para Construção de Aplicações Web Modernas

bookAdicionando Paginação a um Aplicativo Next.js

Para permitir que os usuários naveguem entre diferentes páginas e visualizem todas as faturas, implemente a paginação utilizando parâmetros de URL, de forma semelhante à funcionalidade de busca.

De volta ao projeto

Etapa 1

  1. Ao navegar até o componente Pagination, observe que ele é um componente de cliente. Para evitar a exposição de segredos do banco de dados, evite buscar dados no lado do cliente. Em vez disso, realize a busca dos dados no servidor e passe-os como uma propriedade para o componente;
  2. Em app/dashboard/invoices/page.tsx, importe uma nova função chamada fetchInvoicesPages e passe a consulta de busca de searchParams como argumento:
    • fetchInvoicesPages calcula o número total de páginas com base na consulta de busca. Por exemplo, se houver 12 faturas correspondentes com exibição de 6 por página, o número total de páginas será 2.
  3. Passe a propriedade totalPages para o componente <Pagination/>.

Etapa 2

  1. Navegue até app/ui/invoices/pagination.tsx;
  2. Importe os hooks usePathname e useSearchParams;
  3. Utilize esses hooks para recuperar a página atual e definir a nova página;
  4. Descomente o código neste componente.

Nota

Sua aplicação pode apresentar falhas temporárias, pois a lógica do <Pagination/> ainda não foi implementada. Trabalharemos nisso posteriormente.

Etapa 3

  1. Dentro do componente <Pagination>, crie uma nova função chamada createPageURL;
  2. De forma semelhante à funcionalidade de busca, utilize URLSearchParams para definir o novo número da página;
  3. Utilize pathName para construir a string da URL;
  4. Descomente a variável allPages.

Etapa 4

Etapa final - quando o usuário inserir uma nova consulta de pesquisa, é fundamental redefinir o número da página para 1. Para isso, atualize a função handleSearch em app/ui/search.tsx.

Na Prática

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 6. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain how the fetchInvoicesPages function works?

How does the generatePagination function determine which page numbers to show?

What should I do if the pagination is not updating when I search for a new term?

Awesome!

Completion rate improved to 2.08

bookAdicionando Paginação a um Aplicativo Next.js

Deslize para mostrar o menu

Para permitir que os usuários naveguem entre diferentes páginas e visualizem todas as faturas, implemente a paginação utilizando parâmetros de URL, de forma semelhante à funcionalidade de busca.

De volta ao projeto

Etapa 1

  1. Ao navegar até o componente Pagination, observe que ele é um componente de cliente. Para evitar a exposição de segredos do banco de dados, evite buscar dados no lado do cliente. Em vez disso, realize a busca dos dados no servidor e passe-os como uma propriedade para o componente;
  2. Em app/dashboard/invoices/page.tsx, importe uma nova função chamada fetchInvoicesPages e passe a consulta de busca de searchParams como argumento:
    • fetchInvoicesPages calcula o número total de páginas com base na consulta de busca. Por exemplo, se houver 12 faturas correspondentes com exibição de 6 por página, o número total de páginas será 2.
  3. Passe a propriedade totalPages para o componente <Pagination/>.

Etapa 2

  1. Navegue até app/ui/invoices/pagination.tsx;
  2. Importe os hooks usePathname e useSearchParams;
  3. Utilize esses hooks para recuperar a página atual e definir a nova página;
  4. Descomente o código neste componente.

Nota

Sua aplicação pode apresentar falhas temporárias, pois a lógica do <Pagination/> ainda não foi implementada. Trabalharemos nisso posteriormente.

Etapa 3

  1. Dentro do componente <Pagination>, crie uma nova função chamada createPageURL;
  2. De forma semelhante à funcionalidade de busca, utilize URLSearchParams para definir o novo número da página;
  3. Utilize pathName para construir a string da URL;
  4. Descomente a variável allPages.

Etapa 4

Etapa final - quando o usuário inserir uma nova consulta de pesquisa, é fundamental redefinir o número da página para 1. Para isso, atualize a função handleSearch em app/ui/search.tsx.

Na Prática

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 6. Capítulo 3
some-alt