guricode

상태관리의 정의와 setState의 한계 본문

앱/Flutter&Dart

상태관리의 정의와 setState의 한계

agentrakugaki 2025. 6. 19. 09:36

1.상태관리란 무엇인가?

상태는 변화되는 데이터나 정보를 의미한다. 그런 상태를 관리한다는 것은 상태를 효율적으로 관리하여 UI와 동기화 한다는 것을 말한다.

2.statefulWidget의 setState와 setState의 한계

이전에 StatefulWidget 의생태계를 보면

StatefulWidget
생성자 → createState()
initState()
didChangeDependencies()
build()
didUpdateWidget()
setState() → build() 재호출
deactivate()
dispose()

 

이렇게 setState()이후 build()가 실행되는 것을 알 수 있다.

내부에 갖고있는 값을 UI에 뿌려주기 위해 setState를 사용하여 동기화 해주는 것이다.

버튼을 누르면 카운터가 올라간다. 빌드에 print를 넣어서 setState가 돌아간 후 build가 돌아가는것을 확인 할 수 있다.

근데 setState를 사용하면 build 전체가 다시 로딩된다는 점이 비효율적이다.