컨텐츠로 건너뛰기

소셜 미디어 바닥글 만들기

요구 사항

  • 바닥글 컴포넌트 만들기
  • 소셜 미디어 컴포넌트에 props를 생성하고 전달합니다.

이제 페이지에서 Astro 컴포넌트를 사용했으므로 다른 컴포넌트 내에서 컴포넌트를 사용할 차례입니다!

바닥글 컴포넌트 만들기

섹션 제목: 바닥글 컴포넌트 만들기
  1. src/components/Footer.astro 위치에 새 파일을 만듭니다.

  2. 다음 코드를 새 파일 Footer.astro에 복사합니다.

    src/components/Footer.astro
    ---
    const platform = "github";
    const username = "withastro";
    ---
    <footer>
    <p>Learn more about my projects on <a href={`https://www.${platform}.com/${username}`}>{platform}</a>!</p>
    </footer>

Footer.astro 가져오기 및 사용

섹션 제목: Footer.astro 가져오기 및 사용
  1. 세 개의 Astro 페이지 (index.astro, about.astro, blog.astro) 각각의 프런트매터에 다음 import 문을 추가하세요.

    import Footer from '../components/Footer.astro';
  2. 페이지 하단에 바닥글을 표시하려면 닫는 </body> 태그 바로 앞에있는 각 페이지의 Astro 템플릿에 새로운 <Footer /> 컴포넌트를 추가하세요.

    <Footer />
    </body>
    </html>
  3. 브라우저 미리보기에서 각 페이지의 새 바닥글 텍스트가 보이는지 확인하세요.

직접 시도해 보기 - 바닥글 맞춤설정

섹션 제목: 직접 시도해 보기 - 바닥글 맞춤설정

여러 소셜 네트워크 (예: Instagram, Twitter, LinkedIn)를 표시하도록 바닥글을 사용자 정의하고 사용자 이름을 포함하여 자신의 프로필에 직접 연결하세요.

튜토리얼의 각 단계를 따라왔다면 index.astro 파일은 다음과 같아야 합니다:

src/pages/index.astro
---
import Navigation from '../components/Navigation.astro';
import Footer from '../components/Footer.astro';
import '../styles/global.css';
const pageTitle = 'Home Page';
---
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} />
<title>{pageTitle}</title>
</head>
<body>
<Navigation />
<h1>{pageTitle}</h1>
<Footer />
</body>
</html>

소셜 미디어 컴포넌트 만들기

섹션 제목: 소셜 미디어 컴포넌트 만들기

연결할 수 있는 온라인 계정이 여러 개 있을 수 있으므로 재사용 가능한 단일 컴포넌트를 만들어 여러 번 표시할 수 있습니다. 매번 사용할 다른 속성 (props) (온라인 플랫폼 및 사용자 이름)을 전달합니다.

  1. src/components/Social.astro 위치에 새 파일을 생성합니다.

  2. 다음 코드를 새 파일 Social.astro에 복사합니다.

    src/components/Social.astro
    ---
    const { platform, username } = Astro.props;
    ---
    <a href={`https://www.${platform}.com/${username}`}>{platform}</a>

바닥글에 Social.astro를 가져와 사용

섹션 제목: 바닥글에 Social.astro를 가져와 사용
  1. src/components/Footer.astro의 코드를 변경하여 가져오고 이 새 컴포넌트를 세 번 사용하고 매번 다른 컴포넌트 속성을 props로 전달합니다.

    src/components/Footer.astro
    ---
    const platform = "github";
    const username = "withastro";
    import Social from './Social.astro';
    ---
    <footer>
    <p>Learn more about my projects on <a href={`https://www.${platform}.com/${username}`}>{platform}</a>!</p>
    <Social platform="twitter" username="astrodotbuild" />
    <Social platform="github" username="withastro" />
    <Social platform="youtube" username="astrodotbuild" />
    </footer>
  2. 브라우저 미리보기를 확인하면 각 페이지에 이 세 가지 플랫폼에 대한 링크가 표시되는 새 바닥글이 표시됩니다.

소셜 미디어 컴포넌트 스타일 지정

섹션 제목: 소셜 미디어 컴포넌트 스타일 지정
  1. src/components/Social.astro<style> 태그를 추가하여 링크 모양을 사용자 정의하세요.

    src/components/Social.astro
    ---
    const { platform, username } = Astro.props;
    ---
    <a href={`https://www.${platform}.com/${username}`}>{platform}</a>
    <style>
    a {
    padding: 0.5rem 1rem;
    color: white;
    background-color: #4c1d95;
    text-decoration: none;
    }
    </style>
  2. 내용의 레이아웃을 개선하려면 src/components/Footer.astro<style> 태그를 추가하세요.

    src/components/Footer.astro
    ---
    import Social from './Social.astro';
    ---
    <style>
    footer {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
    }
    </style>
    <footer>
    <Social platform="twitter" username="astrodotbuild" />
    <Social platform="github" username="withastro" />
    <Social platform="youtube" username="astrodotbuild" />
    </footer>
  3. 브라우저 미리보기를 다시 확인하고 각 페이지에 업데이트된 바닥글이 표시되는지 확인하세요.

  1. title, author, date 값을 props로 받으려면 Astro 컴포넌트의 프런트매터에 어떤 코드 줄을 작성해야 합니까?

  2. Astro 컴포넌트에 어떻게 값을 props로 전달합니까?

기여하기

여러분의 생각을 들려주세요!

GitHub Issue 생성

우리에게 가장 빨리 문제를 알려줄 수 있어요.

커뮤니티