[๐Ÿˆ ํ•˜๋ฃจ๋ฉ”์ดํŠธ] ๋ฆฌํŒฉํ† ๋ง- footer

JiEunยท2023๋…„ 9์›” 10์ผ
1
post-thumbnail

๋ถ€ํŠธ์บ ํ”„ ๋•Œ ์ง„ํ–‰ํ•œ ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์—์„œ
๋‚ด๊ฐ€ ๋งก์€ ํŒŒํŠธ๋ฅผ ๋ฆฌํŒฉํ† ๋ง ํ•  ์˜ˆ์ •์ด๋‹ค.

์šฐ์„  ๊ฐ„๋‹จํ•œ footer ์ปจํฌ๋„ŒํŠธ ๋จผ์ € ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

  • footer๋Š” ํŠน์ • ๊ฒฝ๋กœ์—์„œ๋Š” ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.
  • ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ณ  ํŒ€์›๋“ค์˜ ์ •๋ณด๊ฐ€ ์ž‘์„ฑ๋˜์–ด ์žˆ๋‹ค.

๐Ÿ› ๏ธ ๊ธฐ์กด ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ 

<FooterContainer ispath={ispath}>
      <InfoText>
        <li>
          <a
            href="๊นƒํ—™๋งํฌ"
            target="_blank"
            rel="noreferrer"
          >
            ํŒ€์›์ด๋ฆ„
            <span>Front-End</span>
          </a>
        </li>
        .
        .
        .       
       
        <li>
          <a
            href="๊นƒํ—™๋งํฌ"
            target="_blank"
            rel="noreferrer"
          >
            ํŒ€์›์ด๋ฆ„
            <span>Back-End</span>
          </a>
        </li>
      </InfoText>
      <FooterText>Copyright2023. 6 can do it all rights reserved.</FooterText>
    </FooterContainer>

๋ณด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

๋ฐ˜๋ณต๋˜๋Š” UI ๋Š” Array.map() ์„ ํ™œ์šฉํ•ด์„œ ์ถ•์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฆฌ์•กํŠธ ๋ฆฌํŒฉํ† ๋ง ๊ฐ€์ด๋“œ, react refactoring guide - @rayong๋‹˜

๐Ÿ› ๏ธ ๋ฆฌํŒฉํ† ๋ง

//constant.ts
export const FOOTER_DATA = [
  {
    id: 1,
    name: 'ํŒ€์›์ด๋ฆ„',
    type: 'Front-End',
    url: '๊นƒํ—™๋งํฌ',
    target: '_blank',
    rel: 'noreferrer',
  },
  .
  .
  .
  {
    id: 6,
    name: 'ํŒ€์›์ด๋ฆ„',
    type: 'Back-End',
    url: '๊นƒํ—™๋งํฌ',
    target: '_blank',
    rel: 'noreferrer',
  },
//footer.tsx
import { FOOTER_DATA } from '../../utils/constant/constant';
.
.
.
return (
  <FooterContainer ispath={ispath}>
    <InfoText>
      {FOOTER_DATA.map((team) => {
        return (
          <li key={team.id}>
            <a href={team.url} target={team.target} rel={team.rel}>
              {team.name}
              <span>{team.type}</span>
            </a>
          </li>
        );
      })}
    </InfoText>
    <FooterText>
      Copyright 2023. 6 can do it all rights reserved.
    </FooterText>
  </FooterContainer>
);

๊ธฐ์กด ์ฝ”๋“œ ๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
๋˜ํ•œ map ๋ฉ”์„œ๋“œ์˜ ์š”์†Œ๋ฅผ ๋‹ค๋ฅธ ํŒ€์›๋“ค์ด ๋ดค์„ ๋•Œ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก
team์œผ๋กœ ์ž‘์—…ํ•ด ์ฃผ์—ˆ๋‹ค.


์ด๋ฏธ ํ•ด๋‹น footer๋Š” path์˜ ์ƒํƒœ์— ๋”ฐ๋ผ display:none์œผ๋กœ ์•ˆ ๋ณด์ด๊ฒŒ ์ฒ˜๋ฆฌํ•œ ์ƒํƒœ์ด๋‹ค.

ํ—ˆ๋‚˜ ์ด๋Ÿด ๊ฒฝ์šฐ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๋Š” ๋นจ๋ผ์ง€์ง€๋งŒ
ํ™”๋ฉด์— ์ˆจ๊ฒจ์ง„ ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๐Ÿ’ก ๊ทธ๋Ÿผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋˜๊ฒ ๋‹ค!

โ—๏ธ but
์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ฒ ์ง€๋งŒ
ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ์ด๋™ ํ•  ๋•Œ ๋งˆ๋‹ค footer๊ฐ€ ๋งˆ์šดํŠธ๋˜์–ด ์กฐ๊ธˆ ๋Š๋ ค ์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

ํ˜„์žฌ ์ƒํ™ฉ์—์„œ๋Š” footer์˜ ๋น„์ค‘์ด ๋†’์ง€ ์•Š๊ณ 
์ถ”ํ›„ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด ์กฐ๊ฑด๋ฌธ์„ ์„ ํƒํ–ˆ๋‹ค.

์‚ผํ•ญ ์—ฐ์‚ฌ์ž๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์—ˆ์ง€๋งŒ
ํ˜„์žฌ ์ƒํƒœ์—์„œ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ๋“ค์–ด๊ฐ€ ๊ฐ€๋…์„ฑ์„ ์ƒ๊ฐ ํ–ˆ์„ ๋•Œ if๋ฌธ์ด ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

const Footer = () => {
  const ispath = useLocationEndpoint();

  if (ispath === 'community' || ispath === 'mypage' || ispath === '') {
    return (
      <FooterContainer>
        <InfoText>
          {FOOTER_DATA.map((team) => {
            return (
              <li key={team.id}>
                <a href={team.url} target={team.target} rel={team.rel}>
                  {team.name}
                  <span>{team.type}</span>
                </a>
              </li>
            );
          })}
        </InfoText>
        <FooterText>
          Copyright 2023. 6 can do it all rights reserved.
        </FooterText>
      </FooterContainer>
    );
  }
  return null;
};

์ด๋กœ ์ธํ•ด footer ํŒŒ์ผ์˜ ์ฝ”๋“œ๊ฐ€ ๊ฐ„์†Œํ™” ๋˜์—ˆ๊ณ 
์Šคํƒ€์ผ ๋Œ€์‹  ์กฐ๊ฑด๋ฌธ(if ๋ฌธ)์œผ๋กœ ์ž‘์—…ํ•ด ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ๊ฐ€๋…์„ฑ์„ ๋†’ํž ์ˆ˜ ์žˆ์—ˆ๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€