Today rtolzo Learned
Github
Tags
Github
Tags
  • Topics
    • Typescript
    • Git
  • TIL
    • 2022 TIL
    • 2023 TIL
    • 2024 TIL

React Dependency Array에 일반 값이 들어오면?

아래의 컴포넌트의 부모 요소가 리렌더링 될 때 TestComponent는 재 호출 된다. 이 때 a라는 개체는 새로 생성되고 새로운 참조값을 갖게 되면서 useEffect가 실행된다.

import { useEffect } from "react";

const TestComponent = () => {
  const a = [];

  useEffect(() => {
    console.log("리렌더링");
  }, [a]);

  return <h1>HI</h1>;
};

export default TestComponent;

반대로 a 값이 원시값인 경우 React의 부모가 리렌더링 되더라도 Dependency Array에 있는 a 값은 값으로 비교하기 때문에 부모 컴포넌트가 리렌더링 되더라도 useEffect에 callBack 함수가 실행되지 않는다.

import { useEffect } from "react";

const TestComponent = () => {
  const a = 1;

  useEffect(() => {
    console.log("리렌더링");
  }, [a]);

  return <h1>HI</h1>;
};

export default TestComponent;

즉, useEffect에 Dependency Array는 얕은 비교를 통해 동작하며, 이는 꼭 React에서 관리하는 상태값이 아니어도 된다.

마지막 수정일: