초기 렌더링 시 useEffect 후크가 실행되는 것을 방지하는 방법
React 문서에는 구성 요소DidUpdate() 수명 주기 메서드가 도중에 호출되지 않는다고 명시되어 있습니다. 초기 렌더링. 그러나 useEffect 후크를 사용하여 componentDidUpdate()를 시뮬레이션하면 첫 번째 렌더링을 포함하여 모든 렌더링에서 실행되는 것처럼 보입니다.
설명
useEffect 후크는 이후에 실행됩니다. 초기 렌더링 주기를 포함한 모든 렌더링 주기. componentDidUpdate() 메서드와 달리 첫 번째 실행을 건너뛰는 기본 검사 기능이 없습니다.
해결책
이 문제를 해결하는 두 가지 접근 방식이 있습니다.
1. useRef 사용
useRef 후크를 사용하여 useEffect 함수가 처음 호출되는지 여부를 추적할 수 있습니다.
const isFirstRender = useRef(true); useEffect(() => { if (isFirstRender.current) { isFirstRender.current = false; return; // Skip the first render } console.log("Component did update"); }, [<dependencies>]);
2. useLayoutEffect
useLayoutEffect 사용은 useEffect와 유사하지만 DOM 작업 후에 발생하는 componentDidUpdate()와 동일한 단계에서 실행됩니다.
useLayoutEffect(() => { console.log("Component did update"); }, [<dependencies>]);
위 내용은 React의 초기 렌더링에서 useEffect가 실행되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!