본문 바로가기

CS/Flutter | Dart

const constructor

import 'package:flutter/material.dart';

class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key});

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        width: MediaQuery.of(context).size.width,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const TestWidget(label: 'test1'),
            // 앱 실행하는동안 단 한번만 그려 놓으면 다음에 빌드 실행 시 이미 그려놨던 위젯을 기억하고 다시 실행하지 않아도 됨
            const TestWidget(label: 'test2'),
            ElevatedButton(
              onPressed: () {
                setState(() {});
              },
              child: const Text(
                "build!",
              ),
            )
          ],
        ),
      ),
    );
  }
}

class TestWidget extends StatelessWidget {
  final String label;
  const TestWidget({
    required this.label,
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    print("$label bulid 실행!");
    return Container(
        child: Text(
      label,
    ));
  }
}

const 사용 이유

: 앱 실행하는동안 단 한번만 그려 놓으면 다음에 빌드 실행 시 이미 그려놨던 위젯을 기억하고 다시 실행하지 않아도 됨

화면 구성을 위해 빌드를 계속 실행하는 특성 상, const 사용하면 성능에 도움이 됨

-> const를 사용해도 되는 경우, 꼭 해주는 게 좋음 !

 

 

'CS > Flutter | Dart' 카테고리의 다른 글

Flutter Button 스타일링 - ElevatedButton, OutlinedButton, TextButton  (0) 2023.07.25
랜덤 숫자 생성기  (0) 2023.07.24
커플 디데이 어플 만들기  (0) 2023.07.20
Dart DateTime  (0) 2023.07.19
Photo Slide Show App  (0) 2023.07.19

Tiny Star