Next.js project Nextagram

Ng1

lshjju 2025. 9. 27. 13:43

4페이지 만들고 네비게이션 빌딩 합니다.

파일패스에 app/이 생략되어 있습니다.

즉, 이 코드는 app 디렉토리 안에서 진행됩니다.


h1, h2, h3, h4 {
  text-align: center;
}

 

globals.css


export default function Home() {
  return (
    <main>
      <h1>Nextagram</h1>
    </main>
  );
}

 

page.tsx

 

이것은 메인페이지 코드입니다.


export default function Bros() {
  return (
    <div>
      <h1>Bros</h1>
    </div>
  );
}

 

/bros/page.tsx

 

이것은 bros 라는 패스를 가지는 페이지코드입니다.

넥스트는 페이지의 패스를 디렉토리네임으로 세팅합니다.

그리고 각 page.tsx 파일에 코드를 작성합니다.

모든 패스와 파일이 이런 방식으로 세팅 됩니다.

즉 이 파일은 localhost:3000/main/bros 이런 타입의 유알엘을 부여 받습니다. 

왜냐하면 넥스트가 본투비 그렇게 강제하기 때문이지 다른 이유는 없습니다.


export default function Detail() {
  return (
    <div>
      <h1>Detail</h1>
    </div>
  );
}

 

/detail/page.tsx


export default function Login() {
  return (
    <div>
      <h1>Login</h1>
    </div>
  );
}

 

/login/page.tsx


import './globals.css';
import type { Metadata } from 'next';
import { Inter } from 'next/font/google';

const inter = Inter({ subsets: ['latin'] });

export const metadata: Metadata = {
  title: 'Create Next App',
  description: 'Generated by create next app',
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body className={inter.className}>{children}</body>
    </html>
  );
}

 

layout.tsx 

 

디폴트 코드 입니다.

레이아웃은 넥스트 프로젝트의 설계도 같은 아이입니다.

즉, 이 파일은 프로젝트의 구조를 담당합니다.

여기서 디폴트 디렉토리와 패스등을 세팅합니다.

왜냐하면 넥스트가 본투비 그렇기 때문입니다.

 

import Link from 'next/link';

 

임포트아래에 링크 추가 합니다.

 

      <body className={inter.className}>
        <nav>
          <Link href="/">Home</Link>
          <Link href="/bros">Bros</Link>
          <Link href="/login">Login</Link>
          <Link href="/detail">Detail</Link>
        </nav>
        {children}
        <footer>footer</footer>
      </body>

 

바디 태그를 이렇게 수정 합니다.


test

4페이지 뷰 테스트 합니다.


completion

import './globals.css';
import type { Metadata } from 'next';
import { Inter } from 'next/font/google';
import Link from 'next/link';

const inter = Inter({ subsets: ['latin'] });

export const metadata: Metadata = {
  title: 'Create Next App',
  description: 'Generated by create next app',
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body className={inter.className}>
        <nav>
          <Link href="/">Home</Link>
          <Link href="/bros">Bros</Link>
          <Link href="/login">Login</Link>
          <Link href="/detail">Detail</Link>
        </nav>
        {children}
        <footer>footer</footer>
      </body>
    </html>
  );
}

 

layout.tsx


'Next.js project Nextagram' 카테고리의 다른 글

Ng5  (0) 2025.09.28
Ng4  (0) 2025.09.28
Ng3  (0) 2025.09.27
Ng2  (0) 2025.09.27
Ng0  (0) 2025.09.27