- ์ง๊ธ๊น์ง Netlify๋ฅผ ํตํด์๋ง ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๋๋ฐ, Vercel์ ํตํด ๋ฐฐํฌํ ์ ์๋ค๊ณ ํ์ฌ ๊ณต๋ถํ๊ฒ ๋์๋ค.
- ๋๊ผฌ์ค ์์ ์ค ์ ๋ฆฌ.
๋ฐฐํฌ์ , CSS๋ฅผ ๋ง๋ค์ด ๋ณด์.
์ฌ๊ธฐ์์ ์ค์ํ ๊ฑด .module.css๋ฅผ ๋ถ์ด๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ํ์ผ์ import ํด์ฃผ๊ณ , ์ ์ฉํ๊ณ ์ํ๋ ๊ณณ์ class์ด๋ฆ์ ์ ์ฉํ๋ค.
import styles from "../styles/navigation.module.css"
<nav className={styles.nav}>
์ด๋ ๊ฒ ํ๋ฉด class๊ฐ์ ์ด๋ฆ ๊ฒน์นจ ์ถฉ๋์ ์๋ฐฉํ ์ ์๋ค.
cssํ์ผ ๋ด์์๋ ํด๋์ค๋ id๋ช ์ด ๋ฐ๋์ ๋ค์ด๊ฐ์ผ๋ง ์ ์ฉ์ด ๋๋ค.
๋ค๋ฅธ configuration์ ํ์ ์๋ค. ๋จ์ง ํ์ผ ๋ช ์ ๋ช ํํ ์์ฑํ๊ณ , ์ํฌํธ ํ ํด๋์ค๋ช ์ ์ง์ ํด์ฃผ๋ฉด
.nav {
background-color: red;
padding: 50px 100px;
}
.nav ul {
display: flex;
}
๋์ ์ผ๋ก title์ ์ ํด์ฃผ๊ธฐ ์ํด์ Metadata๋ฅผ ํ์ฉํ ์ ์๋ค.
export async function generateMetadata({ params: { id } }: IParams) {
const movie = await getMovie(id);
return {
title: movie.title,
};
}
์ ์ ์ผ๋ก ์ ํด์ฃผ๊ณ ์ถ๋ค๋ฉด?
export const metadata = {
title: "Home"
};
์ ์ ๊ฐ ํด๋น ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํด๋๋ ๊ฒ. ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
<div className={styles.movie}>
<img src={poster_path} alt={title} onClick={onClick} />
<Link prefetch href={`/movies/${id}`}>
{title}
</Link>
</div>
๋ณธ๊ฒฉ์ ์ธ ๋ฐฐํฌ์ ์์ package.json์์ scripts๋ฅผ ์ค์ ํด์ค๋ค.
"build": "next build",
"start": "next start",
build - ์ฑ์ ์ค์ production์ฉ์ผ๋ก ๋ง๋ค์ด ์ค๋ค.
start - ์ฑ์ production ๋ชจ๋๋ก ์์ํด์ค๋ค.
-> vercel์ด ํธ์ถํด์ค๋ค.
vercel์ ๋ก๊ทธ์ธ ํ, ํ๋ก์ ํธ๋ฅผ ์ถ๊ฐํ๋ค.
* vercel์์ ๋ฐฐํฌํ๊ธฐ ์ ์, ์ค๋ฅ๋ฅผ ํ์ธํ ์ ์๊ฒ VS code์์ ์ง์ npm run build๋ก ํ ์คํธํด๋ณผ ์ ์๋ค.
Next.js ์ ๋ฌธํ๊ธฐ (0) | 2024.05.15 |
---|---|
Styled-component์ CSS Resetํ๋ ๋ฐฉ๋ฒ (0) | 2024.05.04 |
useCallback (0) | 2024.03.12 |
useMemo() (0) | 2024.03.12 |
useReducer() (0) | 2024.03.11 |