generic, FC, props

YOUNGJOO-YOON·2021년 8월 17일
0

TS+REACT

목록 보기
2/10
import React, { FC } from 'react';
import logo from './logo.svg';
import './App.css';


interface ButtonProps{
  children?: React.ReactNode;
  width:number;
  onClick?:()=>void;
}

const Button:FC<ButtonProps>=(props)=>{
  // ButtonProps = generic type
  const { children, width, onClick } = props;
  // -> children = props.children ;
  return (
    <button
    style={{
      width:`${width}px`,
      height:'30px',
      display:'flex',
      justifyContent:'center',
    }}
    onClick={onClick}
    >
      {children}
    </button>
  )
}
export { Button }


function App() {
  function alarm(){
    alert('Hi!');
  }
  return (
    <div>
      <Button width = {500} onClick={alarm}>
        <div>this is button</div>
      </Button>
    </div>
  );
}

export default App;

  1. FC type
    const Button:FC<ButtonProps>
    FC = Function Component 타입이다.

react에선 component 또한, 함수 혹은 class이므로 값으로써 전달 될 수 있기 때문에 type을 설정해주어야 한다.


  1. const { children, width, onClick } = props;

props 구조분해 문법을 사용한 것이다.

const children = props.children;
const width = props.width;
const onClick = props.onClick;

와 동일하다

https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/basic_type_example

https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeystype

profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

1개의 댓글

comment-user-thumbnail
2023년 10월 4일

const Button = ((props) : ButtonProps) = {

}

FC를 쓰기보다 위와 같이 주로 사용하는 편인데요.
어떤 차이가 있는 걸까요?

답글 달기