거의 맞았어! 하지만 정확히 말하면 useEffect가 useRef를 실행시키는 게 아니라,
컴포넌트가 처음 렌더링될 때 useEffect가 1번 실행되고,
useRef는 그 이전에 초기화돼 있는 것이야.
✅ 정확히 말하면
Hook | 실행시점 | 설명 |
useRef() | 컴포넌트 렌더링 시점에 바로 실행 | 값(객체)을 한 번만 만들어서 유지함 |
useEffect(() => {...}, []) | 화면에 렌더링된 뒤 한 번 실행 (마운트 후) | 의존성 배열이 []이면 처음 한 번만 |
🧠 쉽게 정리하면
const ref = useRef(0); // ✅ 렌더링 직후 실행 → 초기값 설정됨
useEffect(() => {
console.log("한 번 실행됨"); // ✅ 화면에 그려진 후 딱 1번 실행됨
}, []);
- useRef()는 컴포넌트 렌더링 시마다 실행되지만, .current 값은 유지됨
- useEffect(..., [])는 마운트 후 한 번만 실행됨
❗ 오해하면 안 되는 점
❌ "useRef가 실행되니까 useEffect가 실행된다" ❌
✅ "컴포넌트가 렌더링되니까 둘 다 실행되는 것"
✅ 한 줄 요약
useEffect(() => {...}, [])는 컴포넌트가 화면에 처음 나타난 뒤 한 번 실행되고,
useRef()는 그보다 먼저 실행돼서 초기값을 저장해두는 역할이야.
필요하면 useRef가 실제로 DOM에 어떻게 접근하는지, useEffect와 함께 어떻게 쓰는지도 예시로 보여줄게 😎
'잡동사니 > GPT가 알려주는' 카테고리의 다른 글
[GPT가 알려주는] CRA → Vite 마이그레이션 (0) | 2025.04.15 |
---|---|
[GPT가 알려주는] 몽고DB와 React 데이터 송수신 (0) | 2025.04.14 |
[GPT가 알려주는] IMEI 란? (0) | 2025.04.14 |
[GPT가 알려주는] git commit -m "msg" 할 때 , -m 옵션 의미? (0) | 2025.04.11 |
[GPT가 알려주는] git checkout/switch (0) | 2025.04.10 |