플러터를 사용할때 가장 먼저 만나는 위젯은 StatelessWidget 이다.
StatelessWidget 은 이름에서 어느 정도 알 수 있듯이 상태변화가 앖는 경우에 사용하는 위젯이다.
StatefulWidget 은 그와 반대로 상태가 변하는 경우에 사용하는 위젯이다.
플러터 프로젝트를 처음 생성했을때 카운트 숫자를 변경시키는 기능에서 StatefulWidget을 확인할 수 있다.
StatefulWidget 의 구현 함수 createState()를 보면 State 라는 인스턴스를 생성해주고 있다 StatefulWidget 의 내부를 들여다보면
@protected, @factory 가 보인다.
@factory 의 경우 새로 인스턴스를 생성하지 않고 기존에 사용한 객체를 재사용하는 경우에 사용한다.
그래서 상태가 변할때 기존의 위젯을 다시 그려주고 상태의 변화를 보여줄 수 있다.
그러면 이러한 상태를 전달해 주는 State 객체를 들여다 보자.
State 객체는 상태를 관리할 StatefulWidget 를 타입으로 하는 객체에 상태를 전달해주는 역할을 하고 있다.
StatefulWidget.createState 를 실행하면 그전에 initState 를 실행하게 되고, 상태가 변경될때 변경된 상태를 반영하기 위해서
setState를 구현해 주어야 한다.
여기에서는 상태의 변화를 버튼을 누를때 마다 카운트가 1씩 늘어나도록 반영하였다.
[Flutter] GetX: simple state manager (0) | 2022.06.27 |
---|---|
[Flutter] main.dart 살펴보기 (0) | 2022.06.13 |