인프런 커뮤니티 질문&답변

김도현님의 프로필 이미지

작성한 질문수

부트캠프에서 알려주지 않는 것들 (리액트 렌더링 최적화 편) 2편

useTransition으로 빠른 반응성으로 유저 경험 향상시키기

useTransition 질문입니다!

23.10.10 01:24 작성

·

272

1

강의의 useTransition을 사용한 부분에서 input 태그의 value를 deferedFilter로 설정하고 handleChange 내의 setFilter를 제거해도 문제가 없나요?

아니면 input에서 다루는 value와 Words를 렌더링하기 위한 filter value를 따로 관리해야 하나요?

이렇게 해도 문제가 없는지 궁금합니다!

답변 2

0

 Rudolf님의 프로필 이미지

2024. 01. 17. 00:26

안녕하세요!

강의에서 보여주시는 코드는 어디에서 확인할 수 있을까요?

애프터캠프님의 프로필 이미지
애프터캠프
지식공유자

2024. 01. 17. 10:20

image스크롤 살짝 내려보시면 링크가 있습니다!

0

애프터캠프님의 프로필 이미지
애프터캠프
지식공유자

2023. 10. 10. 20:31

안녕하세요 도현님!

우선 질문에 대한 답을 하기 이전에 몇가지를 명확히 하자면,

filter: 사용자가 입력하는 즉시 입력값을 나타냅니다.

deferredFilter: 필터링 프로세스에 사용되는 값을 나타냅니다. 이 값에 대한 업데이트는 전환 중에 지연되어 값비싼 계산을 방지합니다.

각각의 state들의 역할은 위와 같습니다.

deferedFilter를 input에다가 넣으셨는데 그렇게 하면 빠르게 asdf를 입력했을 때 얼마나 빨리 입력하느냐에 따라 다르겠지만 저 같은 경우엔 as 가 생략되고 인풋에 df만 입력된 것처럼 렌더링이 되었습니다.

왜 그러냐면 제가 강의에서도 알려드렸지만 startTransition 블럭 내에서 상태 업데이트가 되면 렌더링 우선순위가 낮아지기 때문에 입력한 값의 일부가 소실됩니다 (렌더링 우선순위에 밀려서 생략)

그래서 결론은 스크린샷처럼 하면 문제가 될 수 있을 것 같습니다!

 

 

김도현님의 프로필 이미지
김도현
질문자

2023. 10. 11. 15:46

답변 감사합니다!!