bigboom1253 / simple-todo

0 stars 0 forks source link

최적화 함수 사용 관련 #3

Open cslim0527 opened 12 months ago

cslim0527 commented 12 months ago
  const handleChangeSelectedTodo = useCallback((todo) => {
    setSelectedTodo(todo);
  });

useMemo, useCallback 훅은 두번째 인자로 의존성 배열을 사용합니다. 만약 의존성 배열을 할당하지 않는다면 memoization 하지 않습니다.

bigboom1253 commented 12 months ago

위 함수 같은 경우에는 특정 todo를 클릭한경우 해당 todo로 선택값을 변경해주는 역할을 합니다. 따라서, 간단하지만 빈번히 사용되는 함수로 보입니다.

그리고 useCallback은 함수 자체를 memoization 하여 최적화하는 것으로 알고있습니다, 그렇다면, 아래 두 가지 중 어떤것이 더 좋은지 궁금합니다!

1) //의존성 배열이 빈값이지만, useCallback을 써서 memoization 하는방법

     const handleChangeSelectedTodo = useCallback((todo) => {
            setSelectedTodo((prev) => todo);
          }, []);

2) // useCallback 삭제

    const handleChangeSelectedTodo = (todo) => {
            setSelectedTodo((prev) => todo);
          };
cslim0527 commented 11 months ago

handleChangeSelectedTodo 함수는 매개변수로 todo 객체를 넘겨받아 사용하기 때문에 최초에 한번만 메모이제이션 하면 될것 같습니다. (1번 케이스)