React.FC
とNextPage
ってどう違う?
型自体について
React.FC
は
type FC<P = {}> = React.FunctionComponent<P>
だいぶ汎用的
対してNextPage
は
type NextPage<P = {}, IP = P> = React.ComponentType<P> & {
getInitialProps?(context: NextPageContext): IP | Promise<IP>;
}
となっています.
大きな違いはgetInitialProps
でしょう.
getInitialPropsについて
getInitialProps enables server-side rendering in a page and allows you to do initial data population, it means sending the page with the data already populated from the server. This is especially useful for SEO.
ちなみに
pagesの公式ドキュメントによると
By default, Net.js is pre-renders every pages.
まとめ
-
React.FC
はその名の通り一般的な関数型コンポーネントに対して用いることができる型.pageに対しても使用することはできると思う. - pageを構成するコンポーネントに必要な要素が絞れる(さらにNextjsではroutingのシステムを提供している)ため,Nextjs側がpageを構成するコンポーネントを定義することで,routingシステムをより強く設計でき