Flutter

Stateful 과 Stateless Widget 둘 중 어느걸 사용할지 고민될때 확인

Dean83 2023. 4. 26. 14:06

Stateless 위젯이 Stateful 보다 들어가는 수고가 덜 하다 보니, 고민이 될 때 Stateless 위젯을 사용하고 싶을 때가 많다. 

두개의 차이점에 대해서는 이론적으로는 알았으나 체감을 잘 못하고 있었던 탓도 있다. 

 

테스트 프로젝트 도중 Stateless 위젯을 Stateful 위젯으로 변경해야 하는 상황이 생겼고, 일을 두번 하게 되어 기록차

남기게 되었다. 

 

 

1. 두개의 가장 큰 차이점 요약

    - Stateless 위젯은 위젯을 다시 그리는 상황이 오면, 전부 초기화 하고 새로 그린다 (해당 클래스의 맴버변수 또한 초기화 된다!)

    - Stateful 위젯은 State가 별도로 존재 하므로, 위젯을 다시 그리는 상황에서는 State 클래스가 초기화 되나 (또한 해당 맴버변수도)

       Stateful 위젯 자체는 초기화 되지 않는다!!

 

즉 다시 말해, 맴버변수의 값을 계속 유지해야 하는 상황이 온다면, Stateful 위젯을 사용해야 하고, 해당 변수는 Stateful 위젯 클래스에

있어야 한다. (State 클래스에서는 widger.변수명 으로 접근하여 사용)