Next.js를 사용하면 저절로 좋아지는 것이 하나 있습니다. 바로 Server Side Rendering입니다.
next.js는 Javascript가 아닌 html을 응답한다는 것입니다.네트워크 지연되는 상황일 경우, 어떤 특정한 페이지를 방문하였을 때, 컨텐츠가 바뀌는 영역은 굉장히 적지만 웹페이지는 처음부터 끝까지 다시 다운로드를 받게 됩니다.다시 방문할 경우, 처음부터 페이지를 다시 다운로드 받고 있습니다.layout.js에서 a태그가 아닌 Link태그로 바꿉니다.
//layout.js
import Link from "next/link";
import "./globals.css";
export const metadata = {
title: "WEB tutorial",
description: "Generated by du",
};
export default function RootLayout({ children }) {
return (
<html>
<body>
<h1>
<Link href="/">WEB</Link>
</h1>
<ol>
<li>
<Link href="/read/1">html</Link>
</li>
<li>
<Link href="/read/2">css</Link>
</li>
</ol>
{children}
<ul>
<li>
<Link href="/create">create</Link>
</li>
<li>
<Link href="/update/id">update</Link>
</li>
<li>
<button>delete</button>
</li>
</ul>
</body>
</html>
);
}
링크를 클릭하지 않고 커서를 위에 둔 것 만으로 백그라운드에서 페이지를 다운로드합니다.
이미 방문했던 페이지를 다시 방문할 때는 아예 통신조차도 하지 않습니다.
이렇게 웹 페이지가 여러개의 페이지임에도 불구하고 한 페이지처럼 동작하는 것을 Single Page Application이라고 합니다.
Next.js를 이용하면 a태그를 Link태그로 바꾸는 것만으로도 Single Page Application으로 바꾸는 마법을 볼 수 있게 됩니다.