reduce

const sum = numbers.reduce((a, b) => a + b);
// 주어진 상태를 고쳐나가는 함수(현재 상태를 새로운 상태로 변경할 때 씀)
// [주어진상태].reduce([특정규칙] => 변경된 상태)

 

 

 

useMemo, useCallback은 리액트 렌더링 성능 최적화를 위한 Hook

useMemo

- 특정 결과값을 재사용 할 때 

- 함수형 컴포넌트 내부에서 발생하는 연산을 최적화할 수 있음

- 코드 예시 color, movie의 값이 변경될 때마다 재선언

 

 

useMemo 사용 전

// Info.tsx
import React from "react";

const getColor = (color) => {
    (내용)
};
const getMovie = (movie) => {
    (내용)
}

const Info = ({ color, movie }) => {
  const color = getColor(color);
  const movie = getMovie(movie);
  
  return <div> ~ <div>;
};
// Memo.tsx
import React, { useState } from "react";

const Memo = () => {
  const [color, setColor] = useStete('');
  const [movie, setMovie] = useState('');
  
  const onChange = e => {
    if (e.target.id === "color") setColor(e.target.value);
    else setMovie(e.target.value);
    
    return <div> ~ <div>;
  };

 

 

 

const memoizedValue = useMemo(() => somputeExpensiveValue(a, b), [a, b]);
// const 변수 = useMemo(() => 변수(a, b), [a, b]);

 

useMemo 사용 후

// Info.tsx
import React, { useMemo } from "react";

const getColor = (color) => {
    (내용)
};
const getMovie = (movie) => {
    (내용)
}

const Info = ({ color, movie }) => {
  const color = useMemo(() => getColor(color), [color]);
  const movie = useMemo(() => getMovie(movie), [movie]);
  
  return <div> ~ <div>;
};

 

 

 

useCallback

- useMemo와 비슷한 함수

- 렌더링 성능을 최적화할 때 사용

- 특정 함수를 새로 만들지 않고 재사용하고 싶을 때

- 위에 useMemo는 color, movie의 값이 변경될 때마다 재선언 했지만 Callback은 첫 마운트 될 때 한번만 선언하고 재사용

 

 

 

 

참고

https://leehwarang.github.io/2020/05/02/useMemo&useCallback.html

 

이제는 사용해보자 useMemo & useCallback - 이화랑 블로그

이제는 사용해보자 useMemo & useCallback 이제 useState와 useEffect에 완전히 익숙해졌다고 느꼈는데, 컴포넌트 내에서 저 두 개의 hook 만으로도 props나 state를 다루는 로직에 관련된 기본적인 기능을 모두

leehwarang.github.io

 

 

 

~ 공부중 ~

'개발 > React' 카테고리의 다른 글

[React] input 상태 관리  (0) 2022.05.16
[React] props(Propeties)  (0) 2022.05.12
[React] useEffect  (0) 2022.04.22
[React] e.target.name 계산된 속성명  (0) 2022.04.21

+ Recent posts