getInitialProps
Bilmenizde fayda var:
getInitialPropseski bir API'dir. Kullanmanızı öneririzgetStaticPropsveyagetServerSidePropsonun yerine.
getInitialProps sayfa için varsayılan dışa aktarılan React bileşenine eklenebilen bir async işlevidir. Sayfa geçişleri sırasında hem sunucu tarafında hem de istemci tarafında tekrar çalışacaktır. Fonksiyonun sonucu React bileşenine props olarak iletilecektir.
pages/index.tsx
import { NextPageContext } from 'next'
Page.getInitialProps = async (ctx: NextPageContext) => {
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const json = await res.json()
return { stars: json.stargazers_count }
}
export default function Page({ stars }: { stars: number }) {
return stars
}Bildiğim iyi oldu:
getInitialPropsadresinden döndürülen veriler sunucu tarafından işlenirken serileştirilir.getInitialPropsadresinden döndürülen nesnenin düz birObjectolduğundan veDate,MapveyaSetkullanmadığından emin olun.- İlk sayfa yüklemesi için
getInitialPropsyalnızca sunucu üzerinde çalışacaktır.getInitialPropsdaha sonra istemci üzerinde de çalışacaktır.next/linkbileşenini kullanarak veyanext/router.getInitialPropsözel bir_app.jsiçinde kullanılıyorsa ve gidilen sayfagetServerSidePropskullanıyorsa,getInitialPropsda sunucu üzerinde çalışacaktır.
Context Object
getInitialProps aşağıdaki özelliklere sahip bir nesne olan context adlı tek bir argüman alır:
| Name | Description |
|---|---|
pathname | Current route, the path of the page in /pages |
query | Query string of the URL, parsed as an object |
asPath | String of the actual path (including the query) shown in the browser |
req | HTTP request object (server only) |
res | HTTP response object (server only) |
err | Error object if any error is encountered during the rendering |
Caveats
getInitialPropsyalnızcapages/üst düzey dosyalarda kullanılabilir, iç içe geçmiş bileşenlerde kullanılamaz. Bileşen düzeyinde iç içe veri almak için App Router'ı keşfetmeyi düşünün.- Rotanızın statik veya dinamik olmasına bakılmaksızın,
getInitialPropsadresindenpropsolarak döndürülen tüm veriler ilk HTML'de istemci tarafında incelenebilecektir. Bu, sayfanın doğru şekilde hidratlanmasını sağlamak içindir. İstemcide bulunmaması gereken hassas bilgileripropsiçinde iletmediğinizden emin olun.