Seung's Learning Record

[ Flutter ] StatelessWidget과 StatefulWidget의 차이 본문

Dev Tool/Flutter

[ Flutter ] StatelessWidget과 StatefulWidget의 차이

70_0ewd 2022. 10. 1. 21:50

플러터 공부를 위해 구글링을 하다 보면 여기저기서 stateless위젯과 stateful위젯의 차이를 포스팅한 글들이 튀어나온다.
그리고 그 많은 글 중에서 단번에 코알못을 이해시켜주는 글을 찾기란 생각보다 쉽지 않다. 
이글 저글 다 읽어가며 한 지식 동냥한 결과를 여기에 적어둬야 까먹었을 때 다시 기억해내기 쉬울 거 같아서 포스팅을 한다.


StatelessWidget

statelessWidget은 말 그대로 상태를 가지지 않는 위젯이다. 
플러터의 코드를 보면 UI는 build 메소드가 호출되면서 만들어진다. stateless위젯은 이 build 메소드를 화면이 생성되는 순간, 그 한 번에만 호출을 한다. 이게 무엇을 뜻하느냐 하면, 처음 화면이 생성된 후에 변수의 값이 바뀌어도 화면에는 바뀌기 전의 변수값만 뜨는 것이다. 
화면에 뜬 변수값이 그대로라고 실제로 변수값이 변하지 않은 것은 아니니 이점만 주의하면 될듯하다.


StatefulWidget

위와 반대로 statefulWidget은 상태를 가지는 위젯이다. 이 위젯은 변수의 값이 변동될 때마다 매번 build 메소드가 호출된다. 이 덕분에 UI에서도 실시간으로 바뀌는 변수의 값을 확인할 수 있다. 


이제 중요한 두 위젯의 차이를 잘 알았으니 상황에 맞게 잘 만들어보자!!