본문 바로가기
TIL

useDeferredValue TIL

by 치우치지않는 2023. 11. 25.

리액트 공식 문서를 읽다가

 

useDeferredValue로 인한 백그라운드 리렌더링은 화면에 커밋될 때까지 Effects를 실행하지 않습니다. 백그라운드 리렌더링이 일시 중단되면 데이터가 로딩되고 UI가 업데이트된 후에 해당 Effects가 실행됩니다.

 

이 부분이 이해가 되지 않았다. 우선 화면에 커밋된다는 건 뭐지..? 했는데, 생각해보니 예전에 [ 학습하기- 상호작용 더하기 - 렌더링 그리고 커밋 ] 부분에서 

 

1. 렌더링 트리거 (손님의 주문을 주방으로 전달)

2. 컴포넌트 렌더링 (주방에서 주문 준비하기)

3. DOM에 커밋 (테이블에 주문한 요리 내놓기)

 

이 과정에 대해서 배운 적이 있었다. 

아 그러면, UI 가 어떤 값에 의해 업데이트 될 때까지 Effects 가 실행되지 않는 거구나. 라는 것을 알게 되었다. 

 

다음으로 Effects 란 무엇인가..! 가 헷갈렸다. 이때 헷갈렸던 이유는, 나는 [데이터가 로딩되고]의 데이터가 당연히 서버로부터 fetch 해온 데이터라고 생각했는데, 그게 아니고 이 데이터는 search field 같은 곳에 사용자가 입력해서 바뀐, 클라이언트 데이터였다. 

 

즉 해당 문장이 의미하는 바는, useDeferredValue 는 클라이언트 데이터가 완벽히 트리거, 렌더링되고 커밋된 후에 비로소 useDeferredValue 가 실행된다는 것이었다..!! 

 

이렇게 공식 문서 한 문장을 제대로 이해하기 위해 노력하는 과정.. 힘들고 귀찮지만 분명 의미있는 일이라 생각한다..! 앞으로도 공식 문서 꼼꼼히 읽어야지 :)

'TIL' 카테고리의 다른 글

2023.11.27 TIL  (2) 2023.11.28
2023.11.23 - 2023.11.26 TIL  (1) 2023.11.27
2023.11.21 TIL  (1) 2023.11.22
2023.11.20 TIL  (1) 2023.11.21
2023.11.19 TIL  (1) 2023.11.20

댓글