
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' 카테고리의 다른 글
| Flutter Const 논란 < 과연 const는 효율적인가? > (0) | 2025.02.19 |
|---|---|
| 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 |