플러터를 접한지 두 달 정도 되었습니다!
아무래도 UI를 제작하는 활동만 하다보니까 이런 이론에 관해서는 아는게 없는 것 같습니다...
확실히 이론적인 지식을 쌓다보면 효율적이게 코드를 작성할 수 있는 것 같아요!
그래서 오늘은 StatefulWidget과 StatelessWidget의 차이와 생명주기에 대해 알아보도록 하겠습니다!
State란 위젯에 대한 속성을 의미합니다.
고로, 해당 위젯이 가지고 있는 속성을 모두 State라고 부릅니다.
위젯은 모두 상태를 가지며, 위젯은 위젯 트리에 의해서 관리됩니다.
StatelessWidget이란 무엇일까요?
StatelessWidget은 한 번 생성되면 절대 바뀌지 않는 특징을 지녔습니다. 즉 위젯을 한 번 그리면 다시 그리지 않습니다!
상태를 바꾸기 위해선 완전히 destroy하고, 다시 rebuild하는 방법밖에 없습니다.
👉🏻 한 마디로! build() 메서드만 호출하는 Widget입니다!
호출될 때마다 새로운 위젯을 생성하지 않고 기존 위젯을 재사용합니다.
제가 임의 코드를 한번 가져와봤는데요!
import 'package:flutter/material.dart';
// Stateless의 Life Cycle
// 단순 build() 메서드에 UI를 작성하고
// 메인에서 실행하여 UI를 출력합니다.
void main() {
// 실행은 여기서!
runApp(App());
}
// StatelessWidget을 상속한 클래스입니다!
class App extends StatelessWidget {
const App({super.key});
//build()메서드 내부에 개발자가 UI를 정의합니다!
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: const Color(0xFF181818),
body: SingleChildScrollView(
child:
)
)
);
}
}
정말 간단하게 말하자면
그냥 a4용지에 크레파스로 그림을 그리고 끝!이라는 느낌입니다.
그렇다면 StatefulWidget은 무엇일까요?
StatefulWidget은 상태가 변경되면 여러번 build하는 위젯입니다!
StatelessWidget과 다르게 화면을 여러번 그리기 때문에 관리하기가 어렵고 성능이 낮아질 수 있지만 사용자들은 편리함을 느낍니다.
너무 어지럽습니다...
이건 조금 더 공부가 필요한 부분 같습니다!
미완성인 글로 남겨두고 더욱 공부하여 완성시키도록 하겠습니다!