[flutter] 플러터의 useState 훅(hook)을 이용한 상태 관리 예제

플러터(Flutter)에서는 useState 훅을 이용하여 간단하게 상태를 관리할 수 있습니다. 이 기능을 사용하면 상태를 추적하고 변경할 수 있어서 UI에 반영되는 데이터를 쉽게 관리할 수 있습니다.

이번 예제에서는 useState 훅을 사용하여 간단한 카운터 앱을 만들어보겠습니다.

useState 훅이란 무엇인가?

useState 훅은 플러터 버전 2.2.0 이상에서 도입된 기능으로, 상태를 관리하기 위해 필요한 use할 수 있는 훅입니다. 이를 사용하면 위젯의 상태를 간단하게 관리할 수 있으며, 상태가 변경될 때마다 화면이 자동으로 갱신됩니다.

다음은 useState 훅의 기본 구조입니다.

final ValueNotifier<int> count = useState(0);

useState 훅을 이용하여 초기값을 가지는 ValueNotifier를 생성하고, 해당 값의 변경을 추적할 수 있습니다.

카운터 앱 만들기

이제 useState 훅을 사용하여 간단한 카운터 앱을 만들어보겠습니다.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CounterApp(),
    );
  }
}

class CounterApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final ValueNotifier<int> count = useState(0);
    
    return Scaffold(
      appBar: AppBar(
        title: Text('Counter App'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Count',
              style: TextStyle(fontSize: 20),
            ),
            ValueListenableBuilder(
              valueListenable: count,
              builder: (BuildContext context, int value, Widget? child) {
                return Text(
                  '$value',
                  style: TextStyle(fontSize: 50),
                );
              },
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          count.value++;
        },
        child: Icon(Icons.add),
      ),
    );
  }
}

위 예제에서는 ValueNotifier를 생성하여 useState 훅을 이용하여 상태를 관리하고, 화면에 ValueListenableBuilder를 사용하여 상태의 변화를 감지하여 UI를 업데이트하고 있습니다.

결론

useState 훅을 사용하면 간단하고 효율적으로 상태를 관리할 수 있으며, 이를 이용하여 앱의 UI와 데이터의 상호작용을 단순화할 수 있습니다.

더 많은 정보를 원하시면 Flutter 공식 문서를 참고하시기 바랍니다.