3️⃣
(번역) useSyncExternalStore : 실전 리액트 개발을 위한 심층 해설
useSyncExternalStore
- 리액트가 제어하지 않는 외부 상태 관리나 브라우저 API와 리액트 컴포넌트를 연결하는 등 구독 상태를 다루는 방법
- 컨텍스트를 통한 리액트가 제어하는 내부 상태 관리를 하는 훅은 이미 존재한다
- 그렇다면 리액트가 제어하지 않는 외부 상태에 대한 관리는 어떻게 하는걸까?
useEffect와 useState를 조합해 외부 상태를 구독하고 내부 상태 업데이트 하는 방법
- 단순한 경우에는 잘 작동했지만, 리액트의 동시성 렌더링 기능과 충돌하는 문제 발생
동시성 렌더링 에 의해 발생할 수 있는 문제 테어링
- 리액트가 여러 UI 업데이트를 동시에 처리할 수 있습니다.
- 필요에 따라 렌더링 작업을 일시 중지하고, 재개하거나, 취소할 수 있습니다.
- 하지만 리액트가 컴포넌트 트리를 렌더링하는 도중에 외부 스토어가 변경되면, 서로 다른 컴포넌트가 외부 데이터의 서로 다른 버전을 읽을 수 있습니다.
useSyncExternalStore는 동시 업데이트 중에도 렌더링 패스의 모든 컴포넌트가 동일하고 일관된 데이터 스냅샷을 보도록 보장하여 테어링을 방지합니다.
뭔가 큰 일이 벌어지고 있다
- 하루에 한번이라도 AI 툴을 사용해보는 것을 목표로 했는데 의존하게 되었다
- 질문을 잘 할수록 섬세하다고 느껴졌다
- 그럼 나에게 부족한 컨텍스트 전달이 질문을 다듬다보면 개선될 수 있을까?
(번역) 최소 릴리스 기간은 저평가된 공급망 방어 수단입니다
- 무지성 업데이트의 피해를 막기 위한 간단한 설정
문에 가장 먼저 들어가는 사람이 아닌 겁니다. 수천 명의 다른 개발자들을 먼저 들여보내는 거죠. 바닥에 덫이 놓여 있다면, 여러분이 발을 딛기 전에 다른 누군가가 먼저 발견할 겁니다.