didUpdateWidget()
와 setState()
의 차이점
didUpdateWidget()
: Flutter 프레임워크가 자동으로 호출하는 메서드로, 부모 위젯에서 전달된 속성값이 변경될 때 실행됨. 즉, 이 메서드는 개발자가 직접 호출하지 않고 Flutter가 필요한 시점에 실행하는 생명주기와 관련된 메서드다.
setState()
: 개발자가 명시적으로 호출하여 위젯의 상태를 변경할 때 사용하는 메서드. setState()
를 호출하면 Flutter에게 해당 위젯의 상태가 변경되었음을 알리고 build()
를 다시 실행하여 UI를 업데이트 할 수 있게 된다
Dirty와 Clean은 뭐지~?😟
- Dirty: 위젯의 상태나 속성이 변경되어 다시 빌드가 필요한 상태를 말한다. setState()
가 호출되면 위젯은 "Dirty" 상태가 되어 UI 업데이트를 준비한다.
- Clean: 빌드가 완료되어 현재 상태가 최신 상태일 때를 말한다. 즉, 화면에 표시된 내용이 위젯 트리와 일치할 때를 의미한다.
initState()는 빌드메서드 위에 있다.
initState()
는 위젯 인스턴스가 생성될 때 한 번만 호출되는 메서드다. 즉, 위젯이 처음 화면에 추가될 때 createState()
에 의해 State
객체가 생성되고, 그 후에 initState()
가 호출된다. 하지만 initState()
는 위젯 인스턴스가 새로 생성되는 것과는 다르게 StatefulWidget이 초기화될 때만 실행되고, 이후 위젯이 다시 빌드되더라도 initState()
는 다시 호출되지 않는다. 핫 리로드일때 호출이 안된단 얘기
https://betterprogramming.pub/stateful-widget-lifecycle-a01c44dc89b0
'Flutter > Flutter' 카테고리의 다른 글
webRTC 실험요약 (0) | 2024.10.16 |
---|---|
build method 와 render tree를 모르고 hot reload를 논하지마라 (4) | 2024.09.25 |
플러터 프로젝트에서 DI 주입은 어떻게 이루어지는가 (1) | 2024.09.19 |
Provider 기초개념정리 + 예제 (2) | 2024.09.18 |
1. 앱에 어울리는 애니메이션 구현하기 <Lottie편> (1) | 2024.09.16 |