nextjs 공식사이트 - https://nextjs.org/learn/basics/create-nextjs-app
이번 시간에는 SPA의 단점인 SEO를 극복하기 위하여 사용되는 Next.js의 기초를 공부하고자 Next.js의 공식사이트 가이드를 차근차근 따라해보는 시간을 가져보겠습니다.
npx create-next-app nextjs-test
cd nextjs-blog
npm run dev
localhost:3000 들어가기
해당 뷰가 나오면 성공
여기서 알 수 있는 next.js의 장점
- 폴더 경로와 파일명으로 라우팅이 자동으로 되어 편리함
import Link from "next/link";
<Link href="/posts/first-post">
<a>first-post 페이지로 이동해보자!!</a>
</Link>
일반적인 html 식 img 태그로 이미지를 넣으려면
<img src="/images/nextjs.png" alt="" />
다음과 같이 작성해야한다. 하지만 이 경우 스크린 크기가 달라지는 반응형웹에서는 비율에 대한 보장을 받기 힘들다.
위의 문제를 해결 하기 위하여
import Image from "next/image";
<Image
src="/images/nextjs.png"
height={400} // 해당 크기만큼의 비율을 반응형으로 보장 받을 수 있게됨!!
width={400}
alt="img"
/>
html 태그 안 head 내에 넣을 수 있는 link, meta등 필요한 정보들을 컴포넌트별로 넣어 줄 수 있음
Head 컴포넌트 임포트
import Head from 'next/head'
<Head>
<title>Create Next App</title>
<link rel="icon" href="/favicon.ico" />
</Head>
const Layout = ({ children }) => {
return <div>{children}</div>;
};
export default Layout;
<Layout>
<h1>첫번째 포스트!</h1>
<Image
src="/images/nextjs.png"
height={400} // 해당 크기만큼의 비율을 반응형으로 보장 받을 수 있게됨!!
width={400}
alt="img"
/>
</Layout>
.container {
max-width: 36rem;
padding: 0 1rem;
margin: 3rem auto 6rem;
}
import styles from './layout.module.css'
const Layout = ({ children }) => {
return <div className={styles.container}>{children}</div>;
};
양이 많아질 것 같아 글을 나눠서 올리겠습니다. 2편에서 뵙겠습니다.