코딩,해볼까

[REACT] 이게 왜 돼?? (1) / 옵셔널체이닝 본문

Front

[REACT] 이게 왜 돼?? (1) / 옵셔널체이닝

떠굥 2022. 9. 8. 16:14
{SLIDE[num].des} 

{SLIDE[num]?.des}

// 둘의 차이점은 무엇인가?

📂 오늘의 실습 파일 : hd_react_test

 

 

 

state는 immutable(불변성)을 유지해야하기 때문입니다.
컴포넌트는 현재의 this.state와 setState를 비교해서 업데이트가 필요한 경우에만 render 함수를 호출하는데, state를 직접 수정하게 되면 리액트가 render 함수를 호출하지 않아 상태 변경이 일어나도 렌더링이 일어나지 않을 수 있습니다. 상태 변경을 추적하고 변경에 따라 구성요소를 다시 렌더링하려면 setState를 사용해야 합니다.

  1. setState는 비동기적으로 동작하기 때문에 state가 직접 수정되어 여러번 상태를 업데이트 하는 경우, 이전 업데이트 내용이 다음 업데이트 내용에 덮어 쓰여질 수가 있어 예상치 못한 곳에서 버그가 발생 할 수 있습니다.
  2. PureComponent에서 동작하지 않습니다. PureComponent는 this.state와 setState를 비교해 업데이트가 필요한 경우에만 render함수를 호출해 줍니다. 이때, state를 직접 수정하게되면 기존의 this.state와 setState가 동일하므로 리액트는 render함수를 호출하지 않습니다.

결론, state는 꼭 불변성을 유지하도록 직접 수정하지 말자!
state의 object를 직접 수정하지 않고 새로운 object를 만들어 주려면 object의 할당과 spread 연산자를 알아두면 좋습니다. (map함수도, filter함수도 새로운 배열을 반환하기때문에 이럴때 사용하면 좋습니다.)

출처: https://mari-mo.tistory.com/214 [승무원의 개발자되기 프로젝트:티스토리]

 

https://codiving.kr/149

 

[React] useState hook 이해하기

[React] useState hook 이해하기 useState hook 개인적인 생각에 useState hook만 이해하면 react의 50%는 이해했다고 생각한다. 기초적인 내용이지만 그만큼 react의 핵심 내용이라고 볼 수 있다. 따라서 해당 게.

codiving.kr

 

옵셔널 체이닝

https://dev-minju.tistory.com/18

https://coding-farmer.tistory.com/4

https://ko.javascript.info/optional-chaining

 

 

 

 

Comments