밑에 처럼 기존 배열에 push를 하면 배열이 하나만 있는 것이다. 이러면 리액트가 뭐가 바뀌었는지 감지를 못한다.
const array = [];
array.push(1);
그래서
const array2 = […array, 2]
기존 배열을 복사 해놓고 새로운 값을 넣어주는 형태이다.
리액트가 이것을 감지할 수 있는 이유가 기존 배열이랑 새로운 배열이랑 다르기 때문이다.
array === array2
=> false
리액트가 렌더링하는 기준이 예전 state랑 현재 state가 다르면 렌더링을 하는 것이다. 즉 참조가 바뀌어야한다.
const array = [];
array.push(1);
arr === arr
=> true
이러면 리액트가 바뀐 것이 없다고 판단하여 렌더링을 하지 않는다. 그래서 리액트를 할 때 push를 하면 안된다.
'프레임워크 > React' 카테고리의 다른 글
[React] contextAPI (0) | 2021.07.29 |
---|---|
[React] PureComponent와 shouldComponentUpdate (0) | 2021.07.23 |
[React] 화살표 함수를 안쓸 때 (0) | 2021.07.22 |
[React] map 다른 파일로 빼기 (0) | 2021.07.22 |
[React] Map 사용법 (0) | 2021.07.22 |