Pattern

1. switch 조건문

아이콘 등 이미지를 여러장 컴포넌트로 만들땐 아래와 같이 switch 문을 사용한다.

import React from 'react'
import { string, oneOf } from 'prop-types'

const { device, download, tv } = {
  device: './assets/category=Device.png',
  download: './assets/category=Download.jpg',
  tv: './assets/category=TV.png',
}

const Frame = ({ alt = '', type = 'device', ...restProps }) => {
  let src = ''
  switch (type) {
    case 'device':
      src = device
      break
    case 'download':
      src = download
      break
    case 'tv':
      src = tv
      break

    default:
      throw new Error('지원하는 이미지가 아닙니다.')
  }
  return <img src={src} alt={alt} {...restProps} />
}

Frame.propTypes = {
  /** 프레 타입은 다음 4가지 타입을 지원합니다. */
  type: oneOf(['device', 'download', 'tv']).isRequired,
  /** 프레 대체 텍스트는 스크린 리더 사용자에게 읽힐 콘텐츠입니다. 프레임과 동등한 정보를 제공해야 합니다. */
  alt: string,
}

Last updated