Tegyük fel, hogy a next.js react alkalmazásomban van a következő oldal:
// Filename: [mypath].jsx
export default function MyPage(props) {
return (
<>
<Link href="/siteX">
<a>Go to siteX</a>
</Link>
<Link href="/siteY">
<a>Go to siteY</a>
</Link>
<div>{props.data.text}</div>
</>
);
}
export async function getServerSideProps(context) {
const mypath = context.params.mypath;
const res = await fetch(`https://external-api/${mypath}`)
const data = await res.json();
return { props: { data } };
}
Amikor a szerver oldalon elérem a http://localhost:3000/siteX/ címet, az url-ből származó siteX
karakterlánc egy külső (!) API-hoz való hívásra szolgál egy másik rendszeren, pl. https://external-api/siteX. Ez eddig jól működik, de a következő teljesítményproblémát látom:
A böngészőben, amikor rákattintok egy <Link>
-ra, két kérés érkezik: az egyik a saját szerveremhez, hogy frissítsem a getServerSideProps
-t az új elérési úttal, a másik pedig a szerveremtől a https://external-api/ címre... a új adatok.
Látsz módot ennek optimalizálására? Amit akarok:
- amikor az
<Link>
-re kattint, csak egy kérés érkezik közvetlenül a https://external-api/... címre, és adata
közvetlenül frissül (például a Saját oldal állapotaként). - A jelenlegi állapot szerint a http://localhost:3000/siteX/ elérésekor a szervernek le kell kérnie az adatokat, és előrenderelnie kell a webhelyet
Természetesen kezelhetem a data
-et <MyPage>
állapotaként, és egyszerűen meghívhatok egy függvényt, hogy frissítsem egy kéréssel, amikor a <Link>
-re kattintanak. De szeretnék egy helyes útválasztást, előzményeket és így tovább.
Tudsz ebben segíteni? Köszönöm!