본문 바로가기

# 02/Flutter

[Flutter] StatelessWidget & StatefulWidget

반응형

1. StatelessWidget


변화가 필요없는 화면을 구성할 때 사용하는 위젯 클래스이며, 그렇기 때문에 build 메서드는 한 번만 호출된다.

클래스가 자체적으로 다시 빌드되지 않고 자식이 변경 불가능한 경우 자식의 상태를 변경할 수 없다.


변수 쓸 때 final 써줘야됨. 안그럼 에러는 아니고 경고 뜸.

// ignore: must_be_immutable

이거 해줘야됨.

final 써주고 생성자에 꼭 넣어줘야됨. 안그럼 컴파일 에러뜸


StatelessWidget은 상태를 갖지 않기 때문에 상태 변화를 감지하는 용도의 위젯이 아님. 따라서 변수를 초기화하고 수정하지 않도록 final 써주는 것을 권고함.





2. StatefulWidget


클래스가 자체적으로 다시 빌드 되고 자식의 상태를 변경할 수 있으며 상태가 변경되면 알림이 전송된다.

UI가 동적으로 변경되는 경우 StatefulWidget을 구현하는 것이 좋다.

UI에서 동적 변경이 필요한 경우 StatefulWidget을 StatelessWidget의 하위로 구현할 수 있다.


참고 : Stateless 및 Stateful 위젯은 동일하게 작동한다. 그들은 모든 프레임을 다시 빌드 한다. 차이점은 StatefulWidget이 프레임 전체에 걸쳐 상태 데이터를 저장하고 복원하는 State 개체가 있다는 것이다.



반응형