애니메이션 라이브러리 종류
다양한 애니메이션 라이브러리들이 구축되었지만 여전히 적극적으로 제안되고 지원되는 애니메이션 라이브러리는 2개다.
Layout Animation
Animation
Layout Amimation
안드로이드에서는 여전히 실험적이지만 iOS에서는 완전히 지원됩니다. 제어 측면에서 많이 부족하므로 이번에 주로 다루지 않을 것이다.
Layout Animation은 순수하게 native side에서 동작한다.
발생할 애니메이션 유형을 선언하면, setState가 발생할 때마다 애니메이션이 실행된다.
이상적으로 들리지만 이러한 애니메이션을 특정 view 또는 자식요소로 스코핑 할 수 없다. 즉, 특정 요소에 대해 애니메이션을 동작시키지 않고 싶다고 하더라도, 다음 setState에 의해 생성/업데이트 되면서 해당 요소에서 애니메이션이 동작하게 된다.
이전 레이아웃과 다음 레이아웃을 비교한 뒤 애니메이션을 적용한다. 이것은 이상적이고 경우에 따라 쉽게 설정할 수 있지만, 애플리케이션의 복잡성이 증가함에 따라 문제가 발생할 수 있다.
Animation
여기가 애니메이션이 빛나는 곳입니다.
아직 native world 에서 완전히 가동되진 않지만 활발하게 개선되고 있다.
특정 뷰들을 제어하고 애니메이션 시키도록 제어할 수 있다. (장점)
setState를 사용하지 않으므로 애니메이션 시작/정지 시기를 사용자가 온전히 제어할 수 있다.
궁극적으로
Animation
은 현재 가장 많은 개발에 초점을 맞추고 있으며 애니메이션을 제작하는 데 있어 가장 유연하다. 이것이 애니메이션 라이브러리를 이해하는 데 중점을 두는 이유다.한계
레이아웃 애니메이션과 애니메이션에는 모두 단점이 있다.
주된 단점은 마운트 해제 애니메이션이 완전히 부족하다는 것이다.
특수 Wrapper 구성 요소를 사용하면 이러한 애니메이션을 만들 수 있지만 이상적이지는 않다.
애니메이션을 마운트 해제하는 것은 리액트와 관련하여 웹과 모바일 모두에서 여전히 상대적으로 해결되지 않은 문제다.