본문 바로가기
리액트 (React)/React 기초

Component & State & Props의 기본개념

by 후닝훈 2021. 8. 30.
반응형

Component

- Component는 클래스형과 함수형이 있다.

- 생김새와 용도가 다른데, React가 발전을 거듭하며 이젠 생김새만 다르다고 봐도 무방하다.

- 리액트는 함수형 사용을 권장한다.

- 리액트는 레고이고, 컴포넌트는 레고의 블럭이라고 생각하면 쉽다.

 

Component란?

  • 컴포넌트를 이해하고 잘 써먹으려면 웹 사이트를 잘 조각낼 줄 알아야 한다.
  • Component는 웹 사이트의 조각이고, 우리는 이 조각을 모아서 웹사이트에 뿌려준다.
  • 웹 사이트를 잘 조각낼 줄 아는 사람 = 리액트를 잘 쓰는 사람

아래와 같은 html이 있다.

<!DOCTYPE html>
<html lang="en">
  <head>
  </head>
  <body>
    <header> 
        ...
    </header>
    <div class="container">
        <div id="image-banner">
            ...
        </div>
        <div id="contents-1">
            ...
        </div>
    </div>
    <footer>
        ...
    </footer>
  </body>
</html>

위는 아래와 같이 컴포넌트로 쪼갤 수 있다.

  1. <header/>
  2. <container/>
    1. <imagebanner/>
    2. <contents1/>
  3. <footer/>

즉, 이 웹 사이트는, 크게 <header/>, <container/>, <footer/> 세 개의 컴포넌트가 있고, <container/> 컴포넌트는, <imagebanner/>, <contents1/> 컴포넌트로 이루어져 있는 것이다.

 

State와 Props

  • Component의 데이터 관리법.

 

State

  • <header/> 컴포넌트를 예를 들겠다.
  • 이 헤더에 들어갈 데이터는 로고 이미지 경로, 메뉴 이름(온라인, 오프라인, 기업교육, 내 강의실)이 있을 것이다.
  • 이 데이터는 <container/>나 <footer/> 컴포넌트에서는 쓰지 않는다..
  • state는 한 컴포넌트에서만 사용하는 정보를 주로 넣어놓고 생성, 수정하는 데이터.
  • 생성도 수정도 오직 해당 컴포넌트 내에서만 이뤄진다 -> 생성도 수정도 자유롭다.

 

Props

  • 이번엔 <container/> 컴포넌트를 예로 들겠다.
  • <container> <imagebanner/> <contents1/> </container><container/> 컴포넌트는 두 개의 자식 컴포넌트를 가지고 있다. 
  • <container/> 컴포넌트만 <imangebanner/> 컴포넌트한테 필요한 이미지 경로를 가지고 있다고 가정.

      (state로 가지고 있다고 가정)

  • 이 때 <imagebanner/> 컴포넌트는 자신의 부모인 <container/>컴포넌트로부터 이미지 경로를 전달받아서 사용해야 한다.
  • <container/>가 가지고 있는 이미지 경로를 <imagebanner/>에게 전달해주면, 이 이미지 경로가 <imagebanner/> 컴포넌트의 props가 됩니다.
  • 위의 말은 부모 컴포넌트로부터 전달 받은 데이터를 props라고 한다.
  • 그럼 부모 컴포넌트가 가지고 있는 데이터를 <imagebanner/> 컴포넌트가 추가 하거나 수정할 수 없다.
반응형

댓글