-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Produto & checkout (Next avançado) #4
Comments
SSG com parâmetro dinâmicoQuando usamos getSSP, se 1 milhão de pessoas acessarem a página, o código do server side irá executar 1 milhão de vezes. Quando usamos getSP, o código só irá rodar em 2 situações:
Porém, na situação da build, se estivermos trabalhando com parâmetros dinâmicos (como o id do produto por exemplo), como o next irá puxar esses dados?De onde ele vai puxar? É uma build! Não tem de onde puxar. Para esses casos, precisamos retornar uma outra const chamada getStaticPaths, que é um método que vai devolver esses IDs reais. |
Prefetch de linksToda vez que utilizamos um do next, esse componente já vem com o comportamento de prefetch. Ao passar o mouse em cima do link ele já faz uma requisição prévia, antes mesmo de clicar. Mas se seu site tiver muitos links, você deve cuidar para não ficar lento. |
API Routes no NextJSO next tem suporte para rotas de API. Você pode utilizar em um desses casos:
Como utilizarÉ necessário uma pasta chamada /api dentro da pasta /pages e todo arquivo que for criado dentro dela irá corresponder a uma rota (igual ao nome do arquivo) |
Requisições com axiosO Axios é a forma mais recomendada de fazer requisições, principalmente para api externas (quando comparado ao fetch). Redirecionamento para rota externa
Redirecionamento para rota interna (do /src)const router = useRouter();
// ...dentro da request
router.push('/rota-desejada') Tipos de métodos REST nas rotas /src/apiO next não faz distinção de métodos GET POST PUT e DELETE para as rotas dentro de /src/api. Loading de redirecionamentoO estado de loading não precisa ser desativado dentro do try pois esse em questão redireciona para uma página. Foda-se se você desativou. Por isso só é desativado dentro do catch. |
Dados da compra no sucessoO stripe automaticamente preenche o id da compra se você utilizar Revisão rápidaA pagina de success deve realizar a request de qual forma?
|
Redirect no SSRVocê pode fazer redirecionamento usando o getSSP (nesse caso quando criamos um tratamento para quando não houver session id) export const getServerSideProps: GetServerSideProps = async ({ query }) => {
if (!query.session_id) {
return {
redirect: {
destination: '/',
permanent: false,
}
}
}
//...
} |
SEO no NextVocê pode usar a tag export default function Success({ costumerName, product }: SuccessProps) {
return (
<>
<Head>
<title>Compra efetuada | Ignite Shop</title>
<meta name="robots" content="noindex" />
</Head>
<SucessContainer>
<h1>Compra efetuada</h1>
<ImageContainer>
<Image src={product.imageUrl} width={120} height={110} alt="" />
</ImageContainer>
<p>Uhuul <strong>{costumerName}</strong>, sua <strong>{product.name}</strong> já está a caminho da sua casa.</p>
<Link href="/">
Voltar ao catálogo
</Link>
</SucessContainer>
</>
)
} |
Navegação via Link
Utilizar o no react permite que o carregamento / (""redirecionamento"") seja isolado ao componente de link.
Isso vai fazer com que a página não carregue todos os recursos globais novamente ao abrir a página de produto. Só irá carregar o essencial otimizando performance.
É uma herança do SPA que o Next tira proveito justamente por ser um framework feito em cima do react.
The text was updated successfully, but these errors were encountered: