리액트 요소와 가상돔
1. 리액트 요소 트리
2. element 구조
7. 리액트 요소와 가상돔
리액트는 메모리에 가상돔을 올려 놓고 이전과 이후의 가상돔을 비교하고 변경된 부분만 실제 돔에 반영한다.
1. 리액트 요소 트리
2. element 구조
1) seconds
값이 1초마다 바뀌는데, p
태그 안의 {seconds}
부분만 변경된다.
2) 만약에 div
태그 key
값에 seconds
를 주게되면 div
돔 요소가 1초마다 삭제되고 다시 추가된다.
3) 이렇게 key
를 변경하면 리액트는 이것을 다른 요소라고 판단을 해서 이전 것을 삭제하고 새로 만들어서 붙인다.
4) 돔 요소 말고 컴포넌트의 key
를 변경할 때는 어떻게 될까?
- 컴포넌트의 key
를 변경하게 되면 해당 컴포넌트는 삭제 되었다가 추가된다.
- 이렇게 컴포넌트가 삭제되는 것을 Unmount라고 부르고 컴포넌트가 추가되는 것을 Mount라고 부른다.
- 컴포넌트가 Mount
될 때는 useState
의 첫 번째 매개변수로 입력된 초기값이 상태값으로 할당이 된다. 즉, 초기화가 된다는 것이다. 따라서 1초에 한 번씩 0이 새롭게 할당된다.
- 이렇게 key를 변경하면 컴포넌트는 Unmount와 Mount를 반복한다.