Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- css
- 22938번
- 20492번
- 프로그래머스
- 무료강의
- useState
- 스파르타코딩클럽
- sql
- 파이썬무료강의
- error
- 네이버커넥트재단
- MongoDB
- 장고이미지처리
- SEF2022
- ㅐㄱ이
- 프로그래머스입문
- 반응형
- 참가후기
- 장고 다중이미지
- GIT
- React
- 개인정보수집유효기간
- jquery
- 코딩기초트레이닝
- 프론트엔드
- 스파르타
- python
- 파이썬
- html
- django multi image
Archives
- Today
- Total
코딩,해볼까
[REACT] 이게 왜 돼?? (1) / 옵셔널체이닝 본문
{SLIDE[num].des}
{SLIDE[num]?.des}
// 둘의 차이점은 무엇인가?
📂 오늘의 실습 파일 : hd_react_test
state는 immutable(불변성)을 유지해야하기 때문입니다.
컴포넌트는 현재의 this.state와 setState를 비교해서 업데이트가 필요한 경우에만 render 함수를 호출하는데, state를 직접 수정하게 되면 리액트가 render 함수를 호출하지 않아 상태 변경이 일어나도 렌더링이 일어나지 않을 수 있습니다. 상태 변경을 추적하고 변경에 따라 구성요소를 다시 렌더링하려면 setState를 사용해야 합니다.
- setState는 비동기적으로 동작하기 때문에 state가 직접 수정되어 여러번 상태를 업데이트 하는 경우, 이전 업데이트 내용이 다음 업데이트 내용에 덮어 쓰여질 수가 있어 예상치 못한 곳에서 버그가 발생 할 수 있습니다.
- 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://dev-minju.tistory.com/18
https://coding-farmer.tistory.com/4
https://ko.javascript.info/optional-chaining
'Front' 카테고리의 다른 글
[JS] 자바스크립트 초급 (0) | 2022.11.11 |
---|---|
[REACT] state (0) | 2022.11.09 |
[jQuery] 🍪 팝업창 띄우기, 팝업창 쿠키 / jQuery cookie (0) | 2022.08.31 |
[CSS] 내가 보려고 만든 각종 요소들 정렬하는 방법 (0) | 2022.07.13 |
[Git] github와 내 컴퓨터 폴더 연동 하는 방법 (0) | 2022.07.05 |
Comments