Next.jsλ₯Ό μ¬μ©ν λλ λ°μ΄ν° ν¨μΉκ³Ό κ΄λ ¨λ λμμ κ°λ₯ν ν μλ² μ»΄ν¬λνΈμμ μμ±νλ κ²μ μΆμ²ν©λλ€.
μΊμ±μ λ μ μ΄ν΄νκΈ° μν΄μλ λ°μ΄ν°λ₯Ό μ΄λμ μ μ₯ν μ μλμ§μ λν΄ μ°μ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. λ°μ΄ν°λ ν¬κ² λ©λͺ¨λ¦¬, νμΌ μμ€ν κ·Έλ¦¬κ³ λ€νΈμν¬ μ΄λ κ² 3κ°μ μ₯μμμ κ°μ Έ μ¬ μ μμ΅λλ€. κ°μ Έμ€λ μλλ λ©λͺ¨λ¦¬, νμΌ μμ€ν κ·Έλ¦¬κ³ λ€νΈμν¬ μμΌλ‘ λΉ λ¦ λλ€. Next.jsλ λ΄μ₯ λ°μ΄ν° μΊμλ₯Ό μ 곡ν©λλ€. fetchingμ ν΅ν΄ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ©΄ κ°μ Έμ¨ κ²°κ³Όλ₯Ό νμΌ μμ€ν κΈ°λ°μ μΊμμ μ μ₯ν©λλ€. κ²°κ³Όμ μΌλ‘ λμΌν URLμ μ¬μμ²μ 보λ΄λ κ²½μ° λ€μ λ°μ΄ν°λ₯Ό μμ²νλ λμ μ μΊμμμ λΉ λ₯΄κ² κ°μ Έμ¬ μ μμ΅λλ€. λ¬Όλ‘ λ°μ΄ν° μΊμ± λμμ λν ν΅μ κΆμ κ°λ°μμκ² μκΈ° λλ¬Έμ μμ£Ό λ³κ²½λλ λ°μ΄ν°μ κ²½μ° μΊμ±μ λΉνμ±ν ν¨ μΌλ‘μ¨ μ΅μ μ λ°μ΄ν°λ₯Ό λ λλ§ ν μ μμ΅λλ€.
fetch('uri',{
cache: "no-store"
}) // λ°μ΄ν°κ° μμ£Ό λ³κ²½λλ κ²½μ° μ μ©νκ² μ¬μ©ν μ μμ΅λλ€.
fetch('uri',{
next: {revalidate: 10},
}) // μΊμ±μ νΉμ μκ° λμλ§ μ μ§νκ³ , κ·Έ μ΄νμλ λ€μ μμ²μ λ³΄λ΄ μ΅μ λ²μ μ μΊμ±νκ³ μΆμ κ²½μ°μ μ¬μ©ν©λλ€.
μΊμ± νμ±ν μ¬λΆλ fetch ν¨μμμλ§ μ¬μ© ν μ μμ΅λλ€.(axios λ± 3rd-party λΌμ΄λΈλ¬λ¦¬μμλ μ¬μ©μ΄ λΆκ°ν©λλ€.)
Static : μ μ λ λλ§μ λ³νμ§ μλ λ°μ΄ν°κ° μλ μ»΄ν¬λνΈλ₯Ό νλ‘λμ λΉλ μμ μ λ λλ§νκ³ μ΄ν ν΄λΉ μ»΄ν¬λνΈκ° νμν κ²½μ° μ΄λ₯Ό μ¬λ λλ§νλ λμ μ μΊμ±ν΄ μ μ₯ν΄λ λ°μ΄ν°λ₯Ό μ΄μ©ν΄ ν΄λΉ μ»΄ν¬λνΈλ₯Ό κ°μ Έμ¬ μ μλ λ λλ§ μ λλ€.
-
Next.jsλ νλ‘λμ λͺ¨λκ° μλ κ°λ° λͺ¨λμμλ λ³λμ μ μ λ λλ§ μμ΄ λ§€λ² μλ‘μ΄ μμ²μ 보λ΄λ λμ λ λλ§ λ°©μμΌλ‘ λμνκ² λ©λλ€. κ·Έλ¬λ νλ‘λμ λͺ¨λλ‘ λΉλνλ©΄ λ°μ΄ν°λ€μ μ μ λ°μ΄ν°λ‘ μ·¨κΈνκΈ° λλ¬Έμ μ΅μ΄ λ λλ§ν λ°μ΄ν°λ₯Ό μΊμ±μ μ μ₯ν΄λκ³ νμν λλ§λ€ μ μ₯ν΄λ κ±Έ μ¬μ¬μ©ν©λλ€. κ·Έλ¬λ ν΄λΉ μ»΄ν¬λνΈμμ μΊμ±μ λΉνμ±ννλ©΄ Next.jsλ μ΄ νμ΄μ§μ λ΄μ©μ΄ λ³κ²½λλ κ² μΌλ‘ κ°μ£Όν΄ λμ λ λλ§ λ°©μμΌλ‘ ν΄λΉ μ»΄ν¬λνΈλ₯Ό μ²λ¦¬ν©λλ€. κ·Έλ¬λ©΄ Lambda μμ΄μ½μ΄ 보μ΄λ©° μ΄ κ²μ μ μ λ λλ§μ΄ μλ λμ λ λλ§ λ°©μμΌλ‘ λμν¨μ μλ―Έν©λλ€.
-
Production Buildλ κ°λ°μκ° μμ±ν μ΄ν리μΌμ΄μ μ½λμ 리μμ€λ₯Ό μ΅μ νλ νλλ‘ λ²λ€λ§νκ³ , λΆνμν μ 보λ₯Ό μ κ±°νμ¬ μΉ μ΄ν리μΌμ΄μ μ μ€μ μ¬μ©μ μν μ΅μ’ μ νμΌλ‘ λ§λλ νλ‘μΈμ€λ₯Ό μλ―Έν©λλ€. νλ‘λμ λΉλλ₯Ό ν΅ν΄ μ΄ν리μΌμ΄μ μ μ±λ₯μ μ΅μ ν νκ³ , μ¬μ©μμκ² λΉ λ₯΄κ³ μμ μ μΈ μΉ κ²½νμ μ 곡ν μ μκ² λ©λλ€.
@parallel μ΄λ°μμΌλ‘ ν΄λλͺ μ μ μν΄μ£Όκ³ Layout νμ΄μ§μμ {parallel} μ΄λ κ² prop μΌλ‘ λ λλ§λκ² νλ©΄ λ©λλ€. μ¬μ©μ μ€μν μ μ, layout.tsxμ @parallelμ κ°μ κ²½λ‘μ μμ΄μΌ μ¬μ©μ΄ κ°λ₯ν©λλ€. layout.ts μμ propsλ‘ {children}{parallel} μ΄λ°μμΌλ‘.
μλκ²½λ‘ ../ , ./ μ΄κ²κ³Ό λΉμ·νκ² (..) , (.) μ΄λ°μμΌλ‘ κ²½λ‘λ₯Ό νμνκ³ κ·Έλ€μ ν΄λΉ κ²½λ‘μ μλ λΌμ°νΈμ μ΄λ¦μ μ μ΅λλ€. (..)about = μ΄κ²μ λΆλͺ¨ λλ ν 리μ about νμ΄μ§λ₯Ό λͺ μνλ κ²μ λλ€. (.)posting = μ΄κ²μ νμ¬ ν΄λμ posting νμ΄μ§λ₯Ό λͺ μν©λλ€. κ·Έλ¦¬κ³ μ€μν λΆλΆμ, μΈν°μ νΈλ₯Ό λΉν μλ urlμ ν΄λΉνλ κ²½λ‘λ νμκ° μμ κ² κ°μ§λ§, μλ‘κ³ μΉ¨μ΄λ, urlμ°½μ μ§μ μμ±νμ¬ μ μνλ κ²½μ° μ€νμ΄ λκ² λ©λλ€. κ·Έλ μ§ μκ³ νκ·Έλ₯Ό ν΅ν΄μ μ¬ κ²½μ°μλ μΈν°μ νΈλ₯Ό λΉν΄μ λ λλ§ λμ§ μμ΅λλ€.
(group) μ΄λ°μμΌλ‘ κ·Έλ£Ήλͺ μ μ§μ΄μ λλ ν 리λ₯Ό μμ±νλλ°, μ€μ uriμλ μν₯μ μ£Όμ§ μμ΅λλ€.
const router = useRouter();
router.replace(href:"/home"); // replaceλ λ¨μν uriλ§ κ΅μ²΄νκ³ νμ€ν 리 κ°μ²΄μλ μΆκ°λμ§ μκΈ° λλ¬Έμ, λ€λ‘κ°κΈ° μμ λ¬Έμ μμ΄ '/'μΌλ‘ μ΄λμ΄ κ°λ₯νλ€(νΉμ κ·Έμ μ λ¨Έλ¬Όλ λ νμ΄μ§)
return null
const router = useRouter();
router.push(href:"/home"); // pushλ₯Ό μ¬μ©ν κ²½μ°μλ νμ€ν 리 κ°μ²΄μ μΆκ°νμ¬μ, λ€λ‘κ°κΈ°λ₯Ό μ¬μ©ν λ λ¬Έμ κ° λλ€. λ€λ‘κ°κΈ°λ₯Ό νλ©΄ 리λ€μ΄λ νΈλ₯Ό νλ νμ΄μ§λ‘ λμκ°κΈ° λλ¬Έμ, λ€μ /homμΌλ‘ μμ§λ κ²°κ³Όλ₯Ό μ΄λνλ€.
return null