"매 framework 가 model 외의 reality 의 reach 매 escape hatch". React 의 escape hatch — useRef, useEffect, flushSync, ref callback 의 declarative model 외의 imperative DOM/non-React system 의 bridge. 매 2026 React 19 (Activity API, useOptimistic) 의 도입 매 escape hatch 의 사용 빈도 의 감소 but 매 여전히 essential.
매 핵심
매 왜 필요
React model: declarative — UI = f(state).
매 reality 매 imperative — DOM focus, video play, third-party (D3, Chart.js, Three.js), browser API (IntersectionObserver).
매 escape hatch 의 controlled bridge 의 제공.
매 React 의 4 hatch
useRef: 매 mutable container 매 re-render trigger 없음.
useEffect: 매 commit 후 의 side-effect — 매 subscription, manual DOM, external system.
flushSync: 매 sync update 의 force — 매 layout measurement before paint.
ref callback: 매 mount/unmount lifecycle 의 ref level access.
import{flushSync}from"react-dom"functionScrollToBottom() {const[items,setItems]=useState<string[]>([])constlistRef=useRef<HTMLUListElement>(null)constaddItem=(text: string)=>{flushSync(()=>{setItems((prev)=>[...prev,text])})// 매 flushSync 후 매 DOM 매 updated 의 guaranteed
listRef.current?.scrollTo(0,listRef.current.scrollHeight)}return(/* ... */)}