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 |
Tags
- 이더리움
- Sequelize
- centos
- 쉘스크립트
- 머클루트
- 리액트를 다루는 기술
- 깃허브
- 우분투
- npm
- 리눅스
- node.js 교과서 따라하기
- immer
- 변수
- 환경변수
- 노드
- Docker
- wsl
- 블록체인
- 솔리디티
- 시퀄라이즈
- MariaDB
- 설치
- 자바스크립트
- wget
- 라우터
- 일반유저
- 리액트
- 전역설치
- 머클트리
- 벨로포터
Archives
- Today
- Total
코드코코
[리액트] 컴포넌트 리렌더링 최적화 본문
리렌더링이 발생하는 상황
1. 자신이 전달받은 props가 변경될 때
2. 자신의 state가 바뀔때
3. 부모 컴포넌트가 리렌더링될 때
4. forceUpdate 함수가 실행될 때
React.memo 를 사용한 리렌더링 방지
- 컴포넌트의 props가 바뀌지 않았다면, 리렌더링을 방지하여 컴포넌트의 리렌더링 성능 최적화를 함.
- 컴포넌트를 만들고 나서 감싸주기만 하면 됨.
함수가 계속 만들어지는 상황을 방지하는 방법
1. useState의 함수형 업데이트 기능을 사용
- 파라미터로 새로운 상태 대신에, 상태 업데이트를 어떻게 할지 정의해 주는 업데이트 함수를 넣는다.
//useState 함수형 업데이트
const [number, setNumber] = useState(0);
//prevNumbers는 현재 number값을 가리킵니다.
const onIncrease = useCallback(
//어떻게 업데이트할지 정의해 주는 업데이트함수
() => setNumber(prevNumber => prevNumber + 1),
[],
);
2. useReducer를 사용
- 장점 : 상태를 업데이트하는 로직을 모아서 컴포넌트 바깥에 둘 수 있음
- 단점 : 기존 코드를 많이 고쳐야 함
'기록 > 정리' 카테고리의 다른 글
[Garbage collector] 가비지컬렉터 , 메모리 정리 (0) | 2021.11.29 |
---|---|
[리액트] immer로 불변성 유지 작업 (0) | 2021.11.02 |
[리액트] 라이프사이클 메서드 (0) | 2021.10.31 |
[리덕스] 리덕스 3가지 규칙 (0) | 2021.10.31 |
[VS CODE] 터미널 기본값 cmd 로 바꾸기 (0) | 2021.10.29 |