HTMLκ³Ό Next.js λ μ΄μμμ μ΄ν΄
HTMLμ κΈ°λ³Έ κ°λ
HTML(Hypertext Markup Language)μ μΉ νμ΄μ§μ ꡬ쑰λ₯Ό μ μνλ λ§ν¬μ μΈμ΄μ λλ€. μΉ νμ΄μ§μ μ½ν μΈ λ₯Ό μ¬λ¬ κ°μ λ¬Έλ¨, λͺ©λ‘, μ΄λ―Έμ§, λ°μ΄ν° ν μ΄λΈ λ±μΌλ‘ ꡬ쑰ννλ λ° μ¬μ©λ©λλ€.
HTML μμμ ꡬμ±
- μ¬λ νκ·Έ:
<p>
μ κ°μ΄ μμκ° μμλλ λΆλΆ - λ«λ νκ·Έ:
</p>
μ κ°μ΄ μμκ° λλλ λΆλΆ - μ½ν μΈ : νκ·Έ μ¬μ΄μ μ€μ λ΄μ©
- μμ±: μμμ λν μΆκ° μ 보λ₯Ό μ 곡 (μ:
class="editor-note"
)
HTML λ¬Έμμ κΈ°λ³Έ ꡬ쑰
html<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>νμ΄μ§ μ λͺ©</title>
</head>
<body>
<!-- μ€μ μ½ν
μΈ κ° λ€μ΄κ°λ κ³³ -->
</body>
</html>
Next.jsμ λ μ΄μμ μμ€ν
Next.jsλ νμΌ μμ€ν κΈ°λ° λΌμ°ν μ μ¬μ©νμ¬ HTML ꡬ쑰λ₯Ό λμ± μ²΄κ³μ μΌλ‘ κ΄λ¦¬ν μ μκ² ν΄μ€λλ€.
νμ΄μ§ μμ±
νμ΄μ§λ νΉμ URLμμ λ λλ§λλ UI μ»΄ν¬λνΈμ
λλ€. app
λλ ν 리 λ΄μ page.tsx
νμΌμ μμ±νμ¬ μ μν μ μμ΅λλ€:
typescriptexport default function Page() {
return <h1>μλ
νμΈμ, Next.js!</h1>
}
λ μ΄μμ μμ±
λ μ΄μμμ μ¬λ¬ νμ΄μ§μμ 곡μ λλ UI μμμ λλ€. μνλ₯Ό μ μ§νκ³ λ€μ λ λλ§λμ§ μλ νΉμ§μ΄ μμ΅λλ€:
typescriptexport default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="ko">
<body>
<main>{children}</main>
</body>
</html>
)
}
μ€μ²© λΌμ°νΈ
URL ꡬ쑰μ λ°λΌ ν΄λλ₯Ό μ€μ²©νμ¬ λ³΅μ‘ν νμ΄μ§ ꡬ쑰λ₯Ό λ§λ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄:
/
(루νΈ)/blog
(λΈλ‘κ·Έ λ©μΈ)/blog/[slug]
(κ°λ³ λΈλ‘κ·Έ ν¬μ€νΈ)
νμ΄μ§ κ° λ§ν¬
next/link
μ <Link>
μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ¬ νμ΄μ§ κ° μ΄λμ ꡬνν μ μμ΅λλ€:
typescriptimport Link from 'next/link'
export default function PostList() {
return (
<ul>
{posts.map(post => (
<li key={post.slug}>
<Link href={`/blog/${post.slug}`}>{post.title}</Link>
</li>
))}
</ul>
)
}
μ΄λ¬ν ꡬ쑰νλ μ κ·Ό λ°©μμ ν΅ν΄ Next.jsλ HTMLμ κΈ°λ³Έ κ°λ μ νμ₯νμ¬ λ ν¨μ¨μ μ΄κ³ μ μ§λ³΄μκ° μ¬μ΄ μΉ μ ν리μΌμ΄μ μ ꡬμΆν μ μκ² ν΄μ€λλ€.
Test
μ€μ
γ γ
danger!!
warn!!
ν!
dd
μγ γ γ
plaindfdfdfd
dd | dd |
---|---|
d | d |
d | d |