react는 mounting, unmounting, updating 3가지를 사용한다
mounting은 React node를 DOM에 더하는 것이다
unmounting은 React node가 DOM에서 제거되는 것이다
updating은 이미 DOM에 추가된 React node의 data가 바뀌는 것이다
React node가 어떻게 DOM node로써 표현되는지, 언제 DOM tree에 추가되는지, DOM tree의 어디에 나타나는지
이 모든 것은 top-level API 즉 request('react')에서 관리한다
let foo = React.createElement(FooComponent)
foo = {
type: FooComponent,
props: {},
}
위처럼 foo에 React element를 할당하면,
foo는 DOM element는 아니다 DOM tree에 존재하지 않는다
즉, 아직 mount 되지 않았다 단지 React에게 foo라는 element가 render되기 위해서
무엇이 필요한지 말해줄 뿐이다
ReactDOM.render(foo, domContainer)
render()가 호출되는 결과로
root component 즉 domContainer에 foo를 mount 한다
FooComponent class 의 instance를 만들고 render method를 실행한다
domContainer에게 mount된다
Mount란?
컴포넌트가 render될 때에는 mount과정을 거친다, 하지만 props나 state가 변경되어 render될 때에는 mount를 거치지 않는다