SSR (Server-Side Rendering) est une autre méthode de génération de pages dans Next.js. Dans cet article, je souhaite expliquer ce qu'est le SSR, comment il fonctionne et comment l'implémenter à la fois dans le Page Router et le App Router d'un projet Next.js.
SSR est une méthode permettant de générer une page statique (ou une page pré-rendue) après qu'un utilisateur a fait une demande. Cela signifie qu'une page statique est générée à chaque requête. Cette méthode est utile pour les pages qui doivent être mises à jour fréquemment, car elle garantit que les données sont toujours à jour
Lorsque vous utilisez SSR dans Next.js, chaque fois qu'un utilisateur demande une page sur laquelle SSR est implémenté, la page est générée une fois la demande effectuée. Cela signifie que l'utilisateur doit attendre pendant que Next.js génère et regroupe à nouveau le contenu statique pour chaque requête. Une fois la page statique prête, l'utilisateur peut voir la page demandée.
Il est important de noter que SSR s'exécute uniquement sur le serveur et génère une page statique pour chaque requête, il ne s'exécute donc pas pendant le processus de construction du projet.
Pour implémenter SSR dans App Router, vous n'avez pas besoin d'écrire une fonction spéciale ou de définir une configuration spécifique car elle est activée par défaut dans les composants de votre serveur.
Par exemple, si vous avez une page statique et que vous récupérez des données à partir d'une API, cette page utilisera SSR par défaut. Il est important de noter que lorsque SSR est utilisé, la page n'est pas regroupée ou pré-rendue au moment de la construction. Et si vous utilisez une page dynamique dans votre projet, elle utilisera SSG par défaut si vous ne récupérez aucune donnée. Mais lorsque vous récupérez une API, elle passe à SSR, et encore une fois, aucune page statique ne sera regroupée pendant la construction.
ceci est un exemple d'implémentation de SSR dans une route statique :
import React from 'react'; const AboutPage = async () => { // Fetch data from an API or any server-side source const data = getDataFromApi(); return (); }; export default AboutPage;About Us
{data}
Pour implémenter SSR dans le routeur de pages, vous devez créer une fonction getServerSideProps dans votre fichier. Cette fonction sera appelée après chaque demande utilisateur. Si vous utilisez une route dynamique, telle qu'un fichier [id], vous devrez également utiliser getServerSideProps dans votre fichier. Cette fonction prend un argument, souvent nommé contexte, à partir duquel vous pouvez récupérer l'identifiant, la valeur de la page dynamique. Cette fonction est appelée par le serveur à chaque demande utilisateur.
voici un exemple d'implémentation dans le fichier tsx :
import { GetServerSideProps } from 'next'; interface AboutProps { data: string; } const AboutPage: React.FC= ({ data }) => { return ( ); }; // This function runs on the server on every request export const getServerSideProps: GetServerSideProps = async () => { const data = getDataFromApi(); return { props: { data, }, }; }; export default AboutPage;About Us
{data}
voici un exemple d'implémentation dans un fichier jsx :
const AboutPage = ({ data }) => { return (); }; // This function runs on the server on every request export async function getServerSideProps() { const data = getDataFromApi(); return { props: { data, }, }; } export default AboutPage;About Us
{data}
SSR est une méthode utile pour regrouper ou créer des pages statiques, mais cela ne se produit pas pendant la construction. Lorsque vous avez besoin que votre page soit mise à jour à chaque demande d'utilisateur afin que les utilisateurs puissent voir les dernières données, vous pouvez utiliser SSR. Cependant, il est important de noter que cela peut prendre plus de temps et n'est pas aussi rapide que d'autres méthodes comme SSG (Static Site Generation) ou ISR (Incremental Static Regeneration) car elle génère une page statique pour chaque demande de l'utilisateur.
J'espère que vous avez apprécié cet article ! Si vous avez des questions, n'hésitez pas à me les poser. Si vous souhaitez en savoir plus sur ISR et SSG, vous pouvez consulter mes articles à leur sujet ici pour ISR et ici pour SSG. Si vous voulez en savoir plus sur tout, vous pouvez suivre mon site Web.
Merci d'avoir lu ! Au revoir pour l'instant!
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3