props 와 state 둘다 JS 의 일반 객체이다
두 가지 모두 렌더에 영향을 미치는 정보를 가지지만 이 둘은 한 가지 중요한 측면에서 다르다.
props는 컴포넌트에서 외부에서 전달 받아서 사용되지만.
state는 컴포넌트에서 내부에서 정의하여 사용한다.
props
props 는 Component를 사용할 때 내부에 변경되지 않을 데이터를 저장할 때 사용한다.
- props 는 컴포넌트의 속성(property)를 의미한다.
- props 를 전달하는 방법 중 여는 태그와 닫는 태그 사이 value를 넣어 전달할 수 있다.
(Props.children 이라는 방법을 사용한다.)
- props 는 바뀌어서는 안된다.
- props는 setProps 와 replaceProps로 바꿀 수 있지만 이 방법들은 좋지않은 방법들이다.
불변성을 고려하여 컴포넌트의 생명주기동안에는 props가 바뀌어서는 안된다.
state
props와 같이 state 또한 컴포넌트에 대한 정보를 가지고있다.
하지만 정보의 종류와 정보의 관리 방법이 다르다.
- 기본적으로 컴포넌트는 state를 가지고 있지 않지만 컴포넌트간에 렌더링 정보를 추적해야하는경우 컴포넌트는 state를 생성 , 수정 , 사용 할 수 있다.
- state는 props와 다르게 변경이 가능하다.