Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
web:framework:nextjs [2023/03/22 03:44] – [Création projet] jcheron | web:framework:nextjs [2024/04/08 08:56] (Version actuelle) – [Routage] jcheron | ||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
<sxh bash; | <sxh bash; | ||
cd my-next-app | cd my-next-app | ||
- | npx run dev | + | npm run dev |
</ | </ | ||
+ | |||
+ | ==== Routage ==== | ||
+ | Avec App router, le routage est basé sur la structure des dossiers à partir de **app**. | ||
+ | |||
+ | * Chaque dossier représente un segment de route | ||
+ | * Les routes se concrétisent et sont accessibles à partir du moment où elles contiennent le fichier **page.jsx/ | ||
+ | |||
+ | < | ||
+ | |||
+ | === Layout === | ||
+ | **app/ | ||
==== Recupération de données ==== | ==== Recupération de données ==== | ||
+ | |||
=== Côté serveur === | === Côté serveur === | ||
+ | |||
+ | == Server Side Rendering == | ||
+ | |||
+ | <WRAP info round> | ||
+ | Sollicité côté serveur à chaque requête. | ||
+ | </ | ||
<sxh javascript> | <sxh javascript> | ||
+ | |||
+ | export default function Home({data}) { | ||
+ | return ( | ||
+ | <> | ||
+ | <UIList objects={data}/> | ||
+ | </ > | ||
+ | ) | ||
+ | } | ||
+ | |||
+ | export async function getServerSideProps() { | ||
+ | const res = await fetch(API_URL) | ||
+ | const data = await res.json() | ||
+ | return { | ||
+ | props: { | ||
+ | data | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | == Static Site Generation == | ||
+ | |||
+ | <sxh javascript> | ||
+ | |||
+ | export default function Home({data}) { | ||
+ | return ( | ||
+ | <> | ||
+ | <UIList objects={data}/> | ||
+ | </ > | ||
+ | ) | ||
+ | } | ||
+ | |||
export async function getStaticProps() { | export async function getStaticProps() { | ||
const res = await fetch(API_URL) | const res = await fetch(API_URL) |