개발/next.js

[next.js] λΈ”λ‘œκ·Έ μ•± λ§Œλ“€κΈ° 3κ°•

uminisname 2023. 7. 5. 04:51

🐢 Next jsλŠ” λͺ¨λ“  νŽ˜μ΄μ§€λ₯Ό 사전 λ Œλ”λ§ν•¨

1. 정적 생성
- ν”„λ‘œμ νŠΈκ°€ λΉŒλ“œν•˜λŠ” μ‹œμ μ— htmlνŒŒμΌλ“€μ΄ 생성

- λͺ¨λ“  μš”μ²­μ— μž¬μ‚¬μš©

- 퍼포먼슀 이유둜, λ„₯슀트 jsλŠ” 정적 생성을 ꢌ고

- 정적 μƒμ„±λœ νŽ˜μ΄μ§€λ“€μ€ CDN에 μΊμ‹œ

- getStaticProps / getStaticPathsj

 

2. Server Side Rendering (Dynamic Rendering)

- μš”μ²­μ΄ μžˆμ„λ•Œλ§ˆλ‹€ λ‹€μ‹œ λΆ€λ₯΄λ €λ©΄μ€ μ„œλ²„μ‚¬μ΄λ“œλ Œλ”λ§ μ‚¬μš©

- 항상 μ΅œμ‹  μƒνƒœ μœ μ§€

- getServerSideProps

 

ex λ Œλ”λ§ 

μƒμ„ΈνŽ˜μ΄μ§€ 같은 κ²½μš°λŠ” 화면에 λ³΄μ—¬μ§€λŠ” 데이터듀이 μžˆμ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— API호좜이 μ•ˆλ˜μ–΄ μžˆμ„λ•Œ μ •λ³΄κ³΅μœ λ‚˜ 상세정보가 보이지 μ•ŠκΈ° λ•Œλ¬Έμ— μ„œλ²„μ‚¬μ΄λ“œ λ Œλ”λ§μœΌλ‘œ λ§Œλ“€μ–΄λ³Έλ‹€.

 

index.js

[id].js

item을 props둜 λ°›μ•„μ£Όκ²Œ λ˜λ©΄μ„œ 기쑴의 μ½”λ“œμ—μ„œ μ‚­μ œλ˜λŠ” λΆ€λΆ„λ“€μž„ 

=> μ•„μ΄ν…œμ΄ μžˆλŠ”μ§€ μ—†λŠ”μ§€λ§Œ 확인이 되면 λ˜μ„œ

μ‚­μ œν•œ λΆ€λΆ„
μ „μ²΄μ½”λ“œ

메뉴바 μ‚¬μš©μœ„ν•œ

Gnb.js

- router μ‚¬μš©

- next/linkλ₯Ό μ΄μš©ν•˜λ©΄ μƒˆλ‘œκ³ μΉ¨μ΄ μ—†λ‹€λŠ” νŠΉμ§•

- Location을 μ‚¬μš©ν•˜λ©΄ μƒˆλ‘œκ³ μΉ¨μ΄ 됨 -> λΆ€λ“œλŸ½κ²Œ μ΄λ™ν• μˆ˜ μ—†λ‹€λŠ” 단점

 

Footer.js 

Footer에 λ°”κ°€ μ—†μ–΄μ„œ μˆ˜μ •ν•΄μ€Œ

about.js

μ΅œμ’…κ΅¬ν˜„ ν™”λ©΄ 

isLoading μ‚¬μš©μœΌλ‘œ μƒˆλ‘œκ³ μΉ¨ μ‹œ λ‘œλ”© 됨

였늘 끝----