파파비의 블로그

플러터, flutter) Widget의 LifeCycle 본문

개발/flutter

플러터, flutter) Widget의 LifeCycle

N. Dave 2020. 5. 28. 10:38
반응형

stateless widget 의 LifeCycle은 쉽습니다.

생성자 > Build()

이게 전부입니다. immutable한 객체이다 보니 이게 끝입니다.

 

stateful widget은 다릅니다.

 

stateful widget의 생성자 > stateful widget의 create state >

state의 생성자 > state의 init state > build > didupdatewidget > build > dispose

 

이렇게 있을 수 있습니다.

 

stateful widget의 생성자는 build가 실행될 때마다 다시 실행됩니다. 매우 여러번 실행됩니다.

but,

 

stateful widget의 create state, state의 생성자, state의 init state한번씩만 실행됩니다.

state의 init state 은 주로 초기에 연결이나 어떤 초기 작업을 해둘 때 자주 쓰고,

 

didupdatewidget > 위젯이 바뀌어서 업데이트 될 때에만 실행됨,

참고 : https://api.flutter.dev/flutter/widgets/State/didUpdateWidget.html

 

didUpdateWidget method - State class - widgets library - Dart API

@mustCallSuper @protected void didUpdateWidget (covariant T oldWidget ) @mustCallSuper, @protected Called whenever the widget configuration changes. If the parent widget rebuilds and request that this location in the tree update to display a new widget wit

api.flutter.dev

Called whenever the widget configuration changes.

Override this method to respond when the widget changes (e.g., to start implicit animations).

 

애니메이션 같은 것들을 진행할 때는 계속 위젯의 모양이나 그런 것들이 바뀌기 때문에

(계속 stateful위젯이 형성되고, 그래서 생성자와, didupdate이 계속 호출됨)

 

dispose는 마지막에 객체가 지워지기 직전에 실행되며,

clean up하기에 자주쓰는데, 서버에 연결을 끊거나 할 때 자주 쓰인다.

반응형
Comments