moonheekim0118/kr-to-jp

[refactor] textarea value change 렌더링 최적화 하기

Closed this issue · 0 comments

문제점

  • 사용자가 textarea에 글자를 입력 할 때 마다 전체 컴포넌트 (히라가나 / 번역결과)가 리렌더링 됨

해결방법 ( forwarding ref 사용 )

  • textarea 컴포넌트에서 input error 처리, value change를 책임
  • forward ref로 감싸주고, ref 를 매개변수로 받아와서 부모 컴포넌트와 연결
  • 부모 컴포넌트에서 input을 input.current로 접근
  • convert 함수는 디바운싱을 적용하여 textarea 컴포넌트에 props로 전달해주고, textarea컴포넌트는 useEffect로 value 값이 바뀔 때 마다 props로 전달받은 convert 함수 실행