카테고리 없음
[Flutter] const Constructor
고쩡이
2023. 11. 6. 14:19
const : 단 한 번 build하면 다음에 실행할때는 이미 그려놨던 위젯을 재실행하지 않는다.
📄Main.dart
import 'package:flutter/material.dart';
import 'package:u_and_i/screen/home_screen.dart';
void main() {
runApp(
const MaterialApp(
home: HomeScreen(),
),
);
}
📄screen/home_screen.dart
import 'package:flutter/material.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SizedBox(
width: MediaQuery.of(context).size.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const TestWidget(label: 'test1'), // 빌드타임에 모든 값을 알 수 있을때
const TestWidget(label: 'test2'),
ElevatedButton(
onPressed: () {
setState(() {}); // setState -> build 다시 실행
},
child: const Text("빌드!"),
)
],
),
),
);
}
}
class TestWidget extends StatelessWidget {
final String label;
const TestWidget({required this.label, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
print('$label build 실행');
return SizedBox(
child: Text(
label,
),
);
}
}
강의 출처 인프런 [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!