전체 방문자
오늘
어제
  • 전체 글
    • HTML
    • CSS
    • Javascript
    • React
    • Typescript
    • Next.js
    • Webpack
    • Vue.js
    • Git & GitHub
    • Error
    • Study
    • 개발 일지✨

블로그 메뉴

  • 💡
  • ⚙️
hELLO · Designed By 정상우.
하루

Home

...rest props 전달하기
React

...rest props 전달하기

2022. 5. 25. 21:10

component/Button.js

function Button({ children, size, color, outline, fullWidth, onClick }) {
  return (
    <button
      className={classNames('Button', size, color, { outline, fullWidth })}
      onClick={onClick}
    >
      {children}
    </button>
  );
}

여기서 이벤트를 더 추가하게 된다면

function Button({ children, size, color, outline, fullWidth, onClick, onMouseMove }) {
  return (
    <button
      className={classNames('Button', size, color, { outline, fullWidth })}
      onClick={onClick}
      onMouseMove={onMouseMove}
    >
      {children}
    </button>
  );
}

이런 식으로 필요한 이벤트가 있을 때 마다 매번 이렇게 넣어주게 되는 것은 번거롭다.

이러한 문제를 해결해 줄 수 있는 문법이 바로 spread 와 rest 이다.

function Button({ children, size, color, outline, fullWidth, ...rest }) {
  return (
    <button
      className={classNames('Button', size, color, { outline, fullWidth })}
      {...rest}
    >
      {children}
    </button>
  );
}

이렇게 ...rest 를 사용해서 우리가 지정한 props 를 제외한 값들을 rest 라는 객체에 모아주고,

<button> 태그에 {...rest} 를 해주면, rest 안에 있는 객체 안에 있는 값들을 모두 <button> 태그에 설정을 해준다.

 

    'React' 카테고리의 다른 글
    • 리액트 컴포넌트 스타일링
    • React icons 라이브러리 사용하기
    • LifeCycle(생명주기) 메서드
    • Class형 컴포넌트

    티스토리툴바