StateFulWidget & StatelessWidget
Flutter는 상태를 관리하거나 동적인 UI를 구현하기 위해서 위젯을 사용합니다.
그 중에서 'StatelessWidget' 과 'StatefulWidget'은 UI를 구성하는 중요한 위젯입니다.
오늘은 'StatelessWidget' 과 'StatefulWidget'에 대해서 알아보겠습니다.
StatelessWidget
정의
StatelessWidget은 상태가 변경되지 않는 위젯입니다. 생성된 후에 내부의 상태가 변하지 않고 고정되어있어서, 정적인 UI를 표현하는데 사용합니다.
장점
1. 단순성 : 상태 관리가 필요 없으므로 구현이 간단하고 직관적입니다.
2. 성능 : 상태가 없기 때문에 성능이 더 우수하고, 불필요한 리빌드를 피할 수 있습니다.
3. 재사용성 : 정적 요소로 인해 다양한 곳에서 쉽게 재사용할 수 있습니다.
단점
정적이기 때문에 변화가 필요한 UI 에서는 적합하지 않습니다. 내부의 상태가 변하지 않기 때문에 복잡한 상태를 다루기에는 불편함이 존재합니다.
StatefulWidget
정의
StatefulWidget은 상태가 변할 수 있는 위젯입니다. 상호작용에 따라서 내부의 상태가 변할 수 있어서 동적인 UI를 구성하는데 적합합니다.
장점
1. 동적 UI 구성 : 사용자 입력에 따라 UI가 변할 수 있으므로, 복잡한 기능을 구현할 수 있습니다.
2. 상태 관리 : 위젯 내부에서 상태를 관리할 수 있어, 외부의 상태 관리와는 독립적으로 동작합니다.
3. 유연성 : 다양한 상황에 맞게 UI를 조정할 수 있는 유연성을 제공합니다.
단점
상태를 관리하는 코드가 있어야하므로 코드가 길고 구현이 복잡해집니다. 그리고 상태가 변경될때만다 리빌드가 발생해서 규모가 클 수록 성능에 영향을 끼칠 수 있습니다.
두 가지를 간단하게 정리하자면 'StatelessWidget'은 상태가 변하지 않아서 정적인 UI에 활용하고, 'StatefulWidget'은 사용자와 상호작용이 필요한 동적인 UI에 활용할 수 있다로 정리 할 수 있습니다. 이런 것이 항상 그렇듯 뭐가 더 좋다고 할 수는 없고 적재적소에 잘 활용할 수있게 특징을 잘 알고 있는 것이 중요하겠습니다.