State
state는 컴포넌트 가변 데이터의 상태를 나타내며, 컴포넌트 내부에서 선언및 관리한다.
기본적으로 상태가 변경이 되면 컴포넌트는 리렌더링 된다.
- 가변 데이터의 상태
- Private state(컴포넌트 스스로 관리)
- 컴포넌트 내부에서 직접 변경 가능
import React, { useState } from 'react'; const UseState = () => { const [value, setValue] = useState(0); const inCrement = () => { setValue(value + 1); } const deCrement = () => { setValue(value - 1); } return( <div> <p>현재 카운터 값은 <b>{value}</b></p> <button onClick={inCrement}>+1</button> <button onClick={deCrement}>-1</button> </div> ); }; export default UseState;
Props
props는 properites를 줄인 표현으로 컴포넌트 속성을 설정할 때 사용하는 요소이다.
컴포넌트 간 데이터의 흐름은 한 컴포넌트에서 다른 컴포넌트로 데이터 전달(props의 전달)을 의미한다.
props의 전달은 부모 컴포넌트가 자식 컴포넌트에게 데이터를 전달하는 것이며,
자식 컴포넌트는 한 개가 될 수 있고 두 개 이상이 될 수 있다.
props는 부모로부터 상속 받은 데이터를 전달 받기 위함이며 데이터를 변경할 수 없다.
- 불변의 데이터
- 부모로부터 전달 받은 props
//자식 컴포넌트(MyComponent.js) import React from 'react'; const MyComponent = props => { //props는 컴포넌트 함수의 파라미터 return <div>안녕하세요, 제 이름은 {props.name} 입니다.</div> // 부모 컴포넌트에서 name로 지정해서 사용한다. }; export default MyComponent; //부모 컴포넌트(App.js) //컴포넌트를 사용할 때 props 값 지정하기 import React form 'react'; import MyComponent from './MyComponent'; const App = () => { return <MyConponent name={'React'} />; //자식 컴포넌트 props.name으로 지정한 값 사용 } export default App;
결론
state는 함수의 내부에서 선언한 변수이고,
props는 컴포넌트의 함수 파라미터라고(매개변수) 이해하면 좋을 것 같다.
최신 댓글