728x90
๋ฐ˜์‘ํ˜•

์ฝ”๋”ฉ์• ํ”Œ next js ๊ฐ•์˜ ๋“ค์œผ๋ฉด์„œ ๊ธฐ๋กํ•จ

next js logo

 

 

 

 

 

 

๐Ÿ‘€ Next js 

ํ’€์Šคํƒ ํ”„๋ ˆ์ž„ ์›Œํฌ (ํ”„๋ก ํŠธ + ๋ฐฑ) ๋ฆฌ์•กํŠธ ๋ฌธ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ 

 

์ตœ์‹ ๋ฒ„์ „์—์„œ๋Š”

ํŒŒ์ผ๊ณผ ํด๋”๋ฅผ ๋งŒ๋“ค๋ฉด ์ž๋™์œผ๋กœ html ํŽ˜์ด์ง€ ์ƒ์„ฑ

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ธฐ๋Šฅ ๊ฐ€๋Šฅ

์ด๋ฏธ์ง€ ์ตœ์ ํ™” ํฐํŠธ ๋“ฑ๋“ฑ ํ›จ์”ฌ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ 

 

but

ํฐ ํ”„๋กœ์ ํŠธ ์‹œ ๋ณต์žกํ•œ ํด๋”ํŒŒ์ผ๋“ค

์ปดํฌ๋„ŒํŠธ๋“ค์ด ์—„์ฒญ ๋งŽ์•„์ง

๊ทธ๋ƒฅ html๋ Œ๋”๋ง๋งŒ ์ž˜ํ•˜๋Š”

 

 

 

๐Ÿ“Œ์„ค์น˜ํ•˜๊ธฐ

 next.js 13.2.4 ๋ฒ„์ „

  • node js LTS ์„ค์น˜ 18 ๋ฒ„์ „ ์ด์ƒ
npx create-next-app@latest --experimental-app

 

 

 

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ •ํ•œ ํ›„ TypeScript/ESLint/Tailwind/src ๋””๋ ‰ํ† ๋ฆฌ ๋“ฑ ์‚ฌ์šฉ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค. (๋‚˜๋Š” ๋ชจ๋‘ no)

โœ” next 13.2.4 ๋กœ ์ง„ํ–‰

 

npm run dev ๋กœ ์‹คํ–‰

 

 

๐ŸŽ‰ ๋”ฐ ๋ž€

 

 

 

 

 

๐Ÿ“Œ ํด๋”๊ตฌ์กฐ ๋ณด๊ธฐ

 

globals.css

 : ๋ชจ๋“  ํŽ˜์ด์ง€์— ์ ์šฉ๋  css ํŒŒ์ผ

page.module.css

 : ํŠน์ • ํŽ˜์ด์ง€์—์„œ ๋งŒ์˜ css ํŒŒ์ผ

layout.js

 : ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋  ํŒŒ์ผ (head, nav ๋“ฑ) 

page.js

 : ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋ณด์—ฌ์ง€๋Š” ํŒŒ์ผ

public ํด๋” 

 : ์ด๋ฏธ์ง€๋‚˜ ํฐํŠธ ๋“ฑ์„ ๋‹ด๊ณ  ์žˆ๋Š” ํด๋”

 

 

 

๐Ÿ“Œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…

 

 

์ด์ œ ๋ฉ”์ธํŽ˜์ด์ง€ ๋ง๊ณ  ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ

 

๋ผ์šฐํŒ…์ด๋ž‘ url๋กœ ํŽ˜์ด์ง€๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋„ฅ์ŠคํŠธ js๋Š” ๋ฃจํŠธ ํด๋”(page ํ˜น์€ src/page ์—ฌ๊ธฐ์„œ๋Š” app) ํ•˜์œ„์— ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค. 

๋ฆฌ์•กํŠธ์—๋Š” ๋ณ„๋„์˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•จ 

 

 

appํด๋” ํ•˜์œ„ list ํด๋” ์ƒ์„ฑ ํ•œ page.js ์ฃผ์†Œ

 


๐Ÿ“Œ ๊ธฐ๋กํ•ด๋‘๊ธฐ

์žฌ์‚ฌ์šฉ์ด ์žฆ์€ html ๋“ค์„ ์ฃผ๋กœ component๋กœ ๋งŒ๋“œ๋Š” ๊ฒŒ ์ข‹๋‹ค(์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๊ฐ€)

 

map()

๋ฐ˜๋ณต๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ mapํ•จ์ˆ˜

const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map((number) => number * 2);
console.log(doubled);
//[2, 4, 6, 8, 10]

 

key

Key๋Š” React๊ฐ€ ์–ด๋–ค ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ• ์ง€ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์„ ๋•์Šต๋‹ˆ๋‹ค.

์—˜๋ฆฌ๋จผํŠธ์— ์•ˆ์ •์ ์ธ ๊ณ ์œ ์„ฑ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ์—˜๋ฆฌ๋จผํŠธ์— ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

๊ณ ์œ ๊ฐ’

key = {i}

 

 

 

์ปดํฌ๋„ŒํŠธ

  • server compoent
  • client compoent

 

 

useState

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธ 

const [์ƒํƒœ๊ฐ’, ๊ฐฑ์‹ ์ƒํƒœ๊ฐ’] = useState(์ดˆ๊ธฐ๊ฐ’);

 

 

๐ŸŒŒ ์–ด๋ ค์› ๋˜ ์ 

์–ด์ƒ‰ํ•œ jsx๋ฌธ๋ฒ• , ๋ฆฌ์•กํŠธ ์ดํ•ด๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค !

 

 

๐Ÿ”ฅ ํ‚ต๊ณ ์ž‰

๋ฒ ์Šคํ‚จ๋ผ๋นˆ์Šค ๋ง›๋ณด๊ธฐ ์Šคํ‘ผ์ •๋„์˜ ๋ฆฌ์•กํŠธ์™€ next.js ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜๋”ฐ

๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋…๊ณผ JSX ๋ฌธ๋ฒ•์— ํฅ๋ฏธ๋ฅผ ๋А๊ผˆ๊ณ , ๋” ๋งŽ์€ ํ•™์Šต์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค.

์•ž์œผ๋กœ ๊พธ์ค€ํ•˜๊ฒŒ ํ•™์Šตํ•˜๊ณ  ์Šต๋“ํ•˜์—ฌ ๋†’์€ ์ˆ˜์ค€์˜ ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ณ ์ž ๋‹ค์ง..!

 

 

https://ko.reactjs.org/docs/lists-and-keys.html

๋ฐ˜์‘ํ˜•
๋ž˜๋‹ˆ