Podemos renderizar previamente una página en Next.js durante toda la interacción del formulario. Hacemos todo el código HTML y la información temprano. El servidor entonces, en ese punto, reserva los datos.
Esta técnica resulta extraordinaria para vías estáticas; sin embargo, bombardea mientras entrega páginas de formas dinámicas. También es legítimo. Deberíamos imaginar que hay un blog con algunos artículos. Caracterizamos formas dinámicas como [blogId].js en next.js. Esta forma es sustancial para las identificaciones de blog 1, 2, 3, 4, etc., como definitivamente sabemos. Next.js no tiene ningún método para saber la cantidad de páginas que necesita entregar.
Usamos getStaticPaths() para lograr esto, investigando más en este blog.
Características de getStaticPath: suponiendo que una página utiliza getStaticProps y tiene rutas dinámicas, debe caracterizar un resumen de las formas que se crearán estáticamente.
En el momento en que envía el trabajo de getStaticPaths (Generación de sitios estáticos) desde una página que utiliza cursos dinámicos, Next.js pre-entrega estáticamente todas las formas proporcionadas por getStaticPaths.
- La información parte de un CMS que no tiene por delante.
- Los datos se toman de la base de datos.
- La información se toma del sistema de archivos.
- La información se puede almacenar directamente (no explícita del cliente).
Sintaxis:
export async function getStaticPaths() { return { Paths: [ // See path selection below { params: { ...} } ], // See the fallback section below fallback: true, false, or blogging }; }
Alternativa: Falso
Falso, entonces, en ese momento, fabricará solo las formas devueltas por getStaticPaths. Esta elección es valiosa en el caso de que tenga algunas formas de hacerlo, o si la información nueva de la página no se agrega regularmente. Suponiendo que observa que realmente desea agregar más formas y tiene un plan de respaldo: falso, debe ejecutar el siguiente formulario nuevamente para que se puedan crear nuevas formas.
Alternativa: Verdadero
Para el resto. Cuando alguien solicita una página que no se produce en ese momento, el cliente verá la página con un puntero de apilamiento o una parte del esqueleto.
Alternativa: blogs
Fallback es ‘bloquear’, las nuevas formas no devueltas por getStaticPaths confiarán en que el HTML se generará, indistinguible de SSR (en adelante, por qué obstruir), y luego se almacenará para demandas futuras, por lo que solo sucede una vez por forma.
Ejemplo 1:
Javascript
work Post({ post }) { // Render post... } // This capacity gets called at fabricate time trade async work getStaticPaths() { // Call an outside API endpoint to get posts const res = anticipate fetch('https://.../posts') const posts = anticipate res.json() // Get the ways we need to pre-render in light of posts const ways = posts.map((post) => ({ params: { id: post.id }, })) // We'll pre-render just these ways at assemble time. return { ways, backup plan: bogus } } // This likewise gets called at construct time trade async work getStaticProps({ params }) { // params contains the post 'id'. // On the off chance that the course // resembles/posts/1, params.id is 1 const res = anticipate fetch('https://.../posts/${params.id}') const post = anticipate res.json() // Pass present information on the page through props return { props: { post } } }
Producción:
Post1
Ejemplo 2:
Javascript
import { useRouter } from 'next/switch' work Post({ post }) { const switch = useRouter() // On the off chance that the page isn't // yet produced, this will be shown at // first until getStaticProps() gets // done with running if (router.isFallback) { return <div>Loading...</div> } // Render post... } // This capacity gets called at assemble time send out async work getStaticPaths() { return { // Just '/posts/1' and '/posts/2' are // produced at assemble time ways: [{ params: { id: '1' } }, { params: { id: '2' } }], // Empower statically creating extra pages // For instance: '/posts/3' contingency plan: valid, } } // This likewise gets called at assemble time send out async work getStaticProps({ params }) { // params contains the post 'id'. On the off chance that // the course resembles/posts/1, params.id is 1 const res = anticipate fetch('https://.../posts/${params.id}') const post = anticipate res.json() // Pass present information on the page through props return { props: { post }, // Re-create the post all things considered // one time each second // assuming a solicitation comes in revalidate: 1, } }
Producción:
Render post 1 2 3
Publicación traducida automáticamente
Artículo escrito por lifestyle6577 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA