Next.js fornece recursos poderosos para busca de dados em seus aplicativos, incluindo renderização do lado do servidor (SSR), geração de site estático (SSG) e busca de dados do lado do cliente. Ao aproveitar essas técnicas, você pode criar aplicativos escalonáveis e de alto desempenho que proporcionam uma experiência de usuário perfeita. Este guia explorará técnicas avançadas de busca de dados em Next.js e demonstrará como implementá-las em seus projetos.
// pages/post/[id].js export async function getServerSideProps(context) { const { params } = context; const res = await fetch(`https://api.example.com/posts/${params.id}`); const post = await res.json(); return { props: { post, }, }; } const PostPage = ({ post }) => { return (); }; export default PostPage;{post.title}
{post.body}
A geração de site estático em Next.js permite pré-renderizar páginas em tempo de construção, garantindo que o conteúdo seja estático e possa ser servido diretamente de um CDN. Isso pode melhorar significativamente o desempenho e reduzir a carga no seu servidor.
// pages/index.js export async function getStaticProps() { const res = await fetch('https://api.example.com/posts'); const posts = await res.json(); return { props: { posts, }, }; } const HomePage = ({ posts }) => { return ({posts.map((post) => (); }; export default HomePage;))}{post.title}
{post.body}
A regeneração estática incremental em Next.js permite atualizar o conteúdo estático sem reconstruir o site inteiro. Isso é útil para páginas que precisam ser atualizadas com frequência, como artigos de notícias ou postagens de blogs.
// pages/posts/[id].js export async function getStaticProps(context) { const { params } = context; const res = await fetch(`https://api.example.com/posts/${params.id}`); const post = await res.json(); return { props: { post, }, revalidate: 60, // Revalidate the page every 60 seconds }; } const PostPage = ({ post }) => { return (); }; export default PostPage;{post.title}
{post.body}
Next.js também oferece suporte à busca de dados do lado do cliente, o que permite buscar dados após o carregamento inicial da página. Isso pode ser útil para buscar dados que não são necessários para a renderização inicial ou para lidar com interações do usuário que exigem carregamento de dados.
import { useEffect, useState } from 'react'; const PostsPage = () => { const [posts, setPosts] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const fetchPosts = async () => { const res = await fetch('https://api.example.com/posts'); const data = await res.json(); setPosts(data); setLoading(false); }; fetchPosts(); }, []); if (loading) { returnLoading...
; } return ({posts.map((post) => (); }; export default PostsPage;))}{post.title}
{post.body}
Em muitos aplicativos, pode ser necessário combinar diferentes métodos de busca de dados para otimizar o desempenho e a experiência do usuário. Por exemplo, você pode usar SSR ou SSG para carregamento inicial da página e busca do lado do cliente para dados adicionais ou interações do usuário.
// pages/user/[id].js import { useEffect, useState } from 'react'; export async function getServerSideProps(context) { const { params } = context; const res = await fetch(`https://api.example.com/users/${params.id}`); const user = await res.json(); return { props: { user, }, }; } const UserPage = ({ user }) => { const [posts, setPosts] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const fetchPosts = async () => { const res = await fetch(`https://api.example.com/users/${user.id}/posts`); const data = await res.json(); setPosts(data); setLoading(false); }; fetchPosts(); }, [user.id]); return (); }; export default UserPage;{user.name}
{user.email}
Posts
{loading ? (Loading...
) : ({posts.map((post) => ()}))}{post.title}
{post.body}
SWR (stale-while-revalidate) é uma biblioteca de ganchos React criada por Vercel para busca de dados. Ele fornece recursos como cache, revalidação, rastreamento de foco e muito mais, tornando a busca de dados do lado do cliente mais eficiente e poderosa.
import useSWR from 'swr'; const fetcher = (url) => fetch(url).then((res) => res.json()); const SWRPostsPage = () => { const { data, error } = useSWR('https://api.example.com/posts', fetcher); if (error) returnError loading posts.
; if (!data) returnLoading...
; return ({data.map((post) => (); }; export default SWRPostsPage;))}{post.title}
{post.body}
Next.js oferece uma variedade de técnicas de busca de dados para atender a diferentes casos de uso e requisitos de desempenho. Ao compreender e aproveitar SSR, SSG, ISR e busca de dados do lado do cliente, você pode criar aplicativos da Web poderosos e de alto desempenho que fornecem uma excelente experiência ao usuário. Combinar essas técnicas de maneira eficaz pode ajudá-lo a otimizar seus aplicativos Next.js em termos de velocidade e SEO, garantindo que seus usuários tenham a melhor experiência possível.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3