티스토리 뷰

플러터

Flutter) 위젯의 생명주기

Henry95 2021. 3. 1. 15:09
반응형

 

플러터도 스택구조

플러터를 공부하면서 앱개발은 다 똑같구나라고 느낀건 네이티브 안드로이드의 Activity Stack과 비슷한 Navigator를 사용해보고 난 후였다. 그러나 네이티브 안드로이드보다 좀 더 직관적으로 Navigator.push(...) , Navigator.pop() 이런 식으로 실제 자료구조에서 사용하는 표현을 사용한다는 점에서 달랐고 처음 플러터를 접하는 사람중에 알고리즘의 기본정도를 숙지한 사람이라면 다들 어렵지 않게 이해할 수 있을것 같다는 생각이 들었다.

1. Stateless Widget의 생명주기

Stateless Widget의 경우 한번 생성이 되고나면 바꿀 수 없는 위젯이다. 이를 수정하기 위해서는 Destroy했다가 다시 빌드하는 수 밖에 없는데 따라서 build method 내에서 원하는 내용의 Stateless Widget을 새롭게 생성한다.

 

2. Stateful Widget의 생명주기

Stateful Widget은 state object와 결합하게 된다. 예를들어 MyApp이라는  프로젝트를 생성했을때 MyAppState object와 결합하는데 이는 위젯의 구성요소와 속성 등을 지속적으로 추척해 setState() 메소드를 사용해 언제든 업데이트 할 수 있게 한다.

 

위와같은 이유 때문에 Stateful Widget위젯이 Stateless Widget위젯보다 조금 더 긴 생명주기를 가지게 되고 lifecycle method를 가지게 된다.

 

Stateful Widget의 생명주기 함수 종류

stateless widget과 달리 stateful widget은 생명주기가 좀 더 복잡하고 앱을 개발하는데 있어서 모르면 안되는 부분이라고 생각이 되어 간단하게 정리해보려고 한다. 이는 아래와 같은 과정을 거치며 위젯들이 처한 상태(state)에 따라 다른 함수를 호출한다.

 

1. initStat()

 - 해당 위젯이 생성되자마자 실행되는 함수이다. 여기서 데이터나 속성값을 초기화 할 수 있다.

 

2. didChangeDependencies()

 - initStat()의 다음에 실행되는 메소드이다. 추가적으로 위젯이 의존하는 데이터의 객체가 호출될때 호출되기도 한다.

 

3. build()

 - 본 메서드는 한번만 실행되지 않는다. 버튼을 클릭할때나 어떠한 액션을 취할때 계속 실행되는 함수이다.

 

4. dispose()

 - 해당 위젯이 위젯트리에서 제거되었을때 실행되는 함수이다. 더이상 빌드되지 않는다는 의미이다.

 

5. setState()

 - 아래 그림을 보면 setState함수가 호출될때 build함수 전으로 되돌아가는것을 볼 수 있다. 이는 개발자들이 아주 많이 호출하는 함수이며 위젯의 상태를 바꿀때 사용한다.

 

 

 

출처 : https://www.developerlibs.com/2019/12/flutter-lifecycle-widgets.html

 

 

 

 

반응형

'플러터' 카테고리의 다른 글

Flutter) 플러터 개발자 한달 후기  (1) 2021.03.30
Flutter) BLoC 패턴과 Provider패턴  (0) 2021.03.29
Flutter) Widget이란?  (0) 2021.02.17
Flutter) 퓨시아 & 플러터란?  (0) 2021.02.17
Flutter) 플러터를 시작하는 이유  (0) 2021.02.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함