스파르타코딩클럽/과제

메인페이지, 레이아웃 구성

myinfo7091 2024. 12. 18. 12:47

3. 메인페이지, 레이아웃 구성 및 네비게이션 추가

페이지 설정 및 메인 페이지 구현

  • 경로: /
  • 기능: 앱의 홈 페이지로, 주요 링크와 간단한 소개를 제공합니다.
  • 렌더링 방식Static Site Generation (SSG)
    • 빌드 시점에 페이지를 정적으로 생성합니다.
  • 요구사항:
    • 글로벌 레이아웃을 설정하고 네비게이션 메뉴를 추가하여 페이지 간 이동이 가능하도록 합니다.
    • 챔피언 목록, 아이템 목록, 로테이션 정보 페이지로 이동할 수 있는 링크를 제공합니다.
  • 힌트:
    • Next.js의 App Router를 사용하여 레이아웃과 페이지를 구성합니다.
    • layout.tsx 파일에서 글로벌 네비게이션을 설정하고, 공통 레이아웃을 정의합니다.
    • Tailwind CSS를 활용하여 스타일링을 적용합니다.
    • 정적 콘텐츠이므로 SSG를 사용하여 빠른 로딩 속도를 제공합니다.

💡 추가 팁:

  • 홈 페이지에 앱의 소개와 사용 방법 등을 추가하여 사용자 친화적으로 만들 수 있습니다.
  • 네비게이션을 활용하여 다른 페이지로 쉽게 이동할 수 있도록 구성하세요.
  • 레이아웃 컴포넌트를 통해 전체 페이지에 공통적으로 적용되는 요소를 관리할 수 있습니다.
  • 메타데이터 설정을 통해 SEO를 향상시킬 수 있습니다.

 

export default function Home() {
  return (
    <div>
      <h1>리그 오브 레전드 정보 앱</h1>
      <p>Riot Games API를 활용하여 챔피언과 각종 아이템 정보를 제공합니다.</p>
    </div>
  );
}
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import Link from "next/link";

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

export const metadata: Metadata = {
  title: "League of Legends Info App",
  description:
    "Get the latest information on champions, items, and more from Riot Games API.",
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html lang="en">
      <body className={inter.className}>
        <nav>
          <ul>
            <li>
              <Link href={"/"}>홈</Link>
            </li>
            <li>
              <Link href={"/champions"}>챔피언</Link>
            </li>
            <li>
              <Link href={"/items"}>아이템</Link>
            </li>
            <li>
              <Link href={"/rotation"}>로테이션</Link>
            </li>
          </ul>
        </nav>
        <main>{children}</main>
      </body>
    </html>
  );
}