관리 메뉴

Jerry

리액트 공부 본문

Front/React

리액트 공부

juicyjerry 2024. 12. 10. 00:03
반응형

#useReducer
- 컴포넌트 내부에 새로운 State를 생성하는 React Hook
- 모든 useState는 useReducer로 대체 가능
- 상태 관리 코드를 컴포넌트 외부로 분리할 수 있음

 

 

 



#최적화
- 웹 서비스의 성능을 개선하는 모든 행위를 일컫음
- 아주 단순한 것부터 아주 어려운 방법까지 매우 다양함

일반적인 웹 서비스 최적화 방법
- 서버의 응답속도 개선
- 이미지, 폰트, 코드 파일 등의 정적 파일 로딩 개선
- 불필요한 네트워크 요청 줄임
- ...

React App 내부의 최적화 방법
- 컴포넌트 내부의 불 필요한 연산 방지
- 컴포넌트 내부의 불 필요한 함수 재생성 방지
- 컴포넌트의 불 필요한 리렌더링 방지

 

 

 

 

 



#useMemo
- "메모이제이션" 기법을 기반으로 불 필요한 연산을 최적화 하는 리액트 훅
- 자매품 : useCallback

 

 

 

 

 



React.memo
- 컴포넌트를 위수로 받아, 최적화된 컴포넌트로 만들어 변환
- 부모 컴포넌트가 리렌더링 되더라구도 해당 컴포넌트 props가 바뀌지 않는 한 리렌더링 되지 않도록 memoization됨

 

```
// 고차 컴포넌트(HOC)

export default memo(TodoItem, (prevProps, nextProps) => {

  // 반환값에 따라, Props가 바뀌었는지 안 바뀌었는지 판단

  // T -> Props 바뀌지 않음 -> 리렌더링 X

  // F -> Props 바뀜 -> 리렌더링 O

  

  if (prevProps.id !== nextProps.id) return false;

  if (prevProps.isDone !== nextProps.isDone) return false;

  if (prevProps.content !== nextProps.content) return false;

  if (prevProps.date !== nextProps.date) return false;

  

  return true;

});
```

 

https://patterns-dev-kr.github.io/design-patterns/hoc-pattern/
https://goongoguma.github.io/2021/04/26/When-to-useMemo-and-useCallback/

 

When to useMemo and useCallback (번역)

최적화에는 비용이 있기 마련이며 무조건 유익한것은 아닙니다. 이 글에서는 useMemo와 useCallback을 사용함으로써 발생되는 비용과 혜택을 설명해보겠습니다

goongoguma.github.io

 

 

HOC 패턴

📜 원문: patterns.dev - hoc pattern 종종 여러 컴포넌트에서 같은 로직을 사용해야 하는 경우가 있다. 이런 로직은 컴포넌트의 스타일시트를 설정하는 것일 수 있고. 권한을 요청하거나. 전역 상태를

patterns-dev-kr.github.io

 

 

 

 

 

 

 

 

return state.map((item) => { item.id === action.targetId ? { ...item, isDone: !item.isDone } : item; }); 

return state.map((item) => item.id === action.targetId ? { ...item, isDone: !item.isDone } : item ); 차이가 뭐길래 에러가 나는거야

두 코드의 가장 큰 차이는 **`map` 함수의 콜백 함수에서 반환값이 명시적으로 정의되었는지 여부**입니다. 에러가 나는 원인은 첫 번째 코드에서 콜백 함수 내에 **암묵적인 반환값이 없기 때문**입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

#React Context
- 컴포넌트간의 데이터를 전달하는 또 다른 방법
- 기존 Props가 가지고 있던 단점을 해결할 수 있음
- Props Drilling 해결
- 데이터 보관소 객체

 

 

 

 

 

반응형

'Front > React' 카테고리의 다른 글

리액트 공부  (1) 2024.12.10
리렌더링이란? 🤷‍♂️🤷‍♂️  (0) 2021.04.09
Virtual DOM 이란🧐🧐  (0) 2021.04.09
리액트 최적화 요약집👍👍 (useCallback, useMemo ...)  (2) 2021.04.08
#Sprint  (0) 2020.12.02