Share
Sign In

useTransition

공식문서
react 18.xx 버전에서 동작하는 hook이다.
react 에서 useTransition()import 하면 된다.
일반적인 사용방법은 아래와 같다. useTransition이라는 hookisPending이라는 flag와 startTransition 이라는 함수를 불러와 사용한다.
isPending 은 boolean 값을 갖고 있고, transition이라는 함수가 실행 중일 때, true이고 실행이 끝나면 false로 바뀐다.
startTransition 함수는 상태를 업데이트 하는데, 원치 않은 업데이트가 연속적으로 이어질 경우, 해상 상태를 업데이트 하는 것을 지연시킨다.
예를 들어 마우스를 따라다니는 div 밑에 마우스의 좌표를 표시해주고 싶을 경우, useState를 통해 구현하면 아래와 같다.
하지만 이럴 경우, 마우스가 움직일 때마다 해당 컴포넌트가 빈번히 재랜더링 되면서 성능적인 측면에서 개선할 필요가 있어진다.
기존 같은 경우 lodash의 debounce 함수를 사용하여 함수가 실행되는 것을 늦추는 방법을 사용했겠지만, 이번 18.xx버전 react 에서는 자체적으로 지연 시킬 수 있게 됐다.
바뀐 코드는 아래와 같다.
공식문서
react 18.xx 버전에서 동작하는 hook이다.
react 에서 useTransition()import 하면 된다.
일반적인 사용방법은 아래와 같다. useTransition이라는 hookisPending이라는 flag와 startTransition 이라는 함수를 불러와 사용한다.
isPending 은 boolean 값을 갖고 있고, transition이라는 함수가 실행 중일 때, true이고 실행이 끝나면 false로 바뀐다.
startTransition 함수는 상태를 업데이트 하는데, 원치 않은 업데이트가 연속적으로 이어질 경우, 해상 상태를 업데이트 하는 것을 지연시킨다.
예를 들어 마우스를 따라다니는 div 밑에 마우스의 좌표를 표시해주고 싶을 경우, useState를 통해 구현하면 아래와 같다.
하지만 이럴 경우, 마우스가 움직일 때마다 해당 컴포넌트가 빈번히 재랜더링 되면서 성능적인 측면에서 개선할 필요가 있어진다.
기존 같은 경우 lodash의 debounce 함수를 사용하여 함수가 실행되는 것을 늦추는 방법을 사용했겠지만, 이번 18.xx버전 react 에서는 자체적으로 지연 시킬 수 있게 됐다.
바뀐 코드는 아래와 같다.
공식문서
react 18.xx 버전에서 동작하는 hook이다.
react 에서 useTransition()import 하면 된다.
일반적인 사용방법은 아래와 같다. useTransition이라는 hookisPending이라는 flag와 startTransition 이라는 함수를 불러와 사용한다.
isPending 은 boolean 값을 갖고 있고, transition이라는 함수가 실행 중일 때, true이고 실행이 끝나면 false로 바뀐다.
startTransition 함수는 상태를 업데이트 하는데, 원치 않은 업데이트가 연속적으로 이어질 경우, 해상 상태를 업데이트 하는 것을 지연시킨다.
예를 들어 마우스를 따라다니는 div 밑에 마우스의 좌표를 표시해주고 싶을 경우, useState를 통해 구현하면 아래와 같다.
하지만 이럴 경우, 마우스가 움직일 때마다 해당 컴포넌트가 빈번히 재랜더링 되면서 성능적인 측면에서 개선할 필요가 있어진다.
기존 같은 경우 lodash의 debounce 함수를 사용하여 함수가 실행되는 것을 늦추는 방법을 사용했겠지만, 이번 18.xx버전 react 에서는 자체적으로 지연 시킬 수 있게 됐다.
바뀐 코드는 아래와 같다.