[flutter] useRef 훅 위젯의 사용법과 예제

React에서 제공되는 useRef hook과 유사한 useRef 훅이 Flutter 2.8버전부터 도입되었습니다. useRef 훅은 StatefulWidget 내에서 상태를 저장하고, 해당 상태를 변경하지 않고도 상태를 보존할 수 있는 기능을 제공합니다. 이제 useRef 훅 위젯의 사용법과 예제를 살펴보도록 하겠습니다.

useRef 훅의 사용법

useRef 훅은 다음과 같이 사용됩니다.

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';

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

class MyApp extends HookWidget {
  @override
  Widget build(BuildContext context) {
    var count = useRef(0);

    useEffect(() {
      print('useEffect - count: ${count.value}');
    }, [count]);

    return Scaffold(
      appBar: AppBar(
        title: Text('useRef Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            count.value++;
            print('Button Clicked - count: ${count.value}');
          },
          child: Text('Click me'),
        ),
      ),
    );
  }
}

위 예제에서 useRef 훅을 사용하여 count라는 변수를 선언하고, useEffect 훅을 사용하여 count 변수 값의 변화를 감지하고 로그를 출력하는 예제입니다.

useRef 훅 예제

다음은 useRef 훅을 사용한 예제 코드입니다.

var count = useRef(0);

이 예제에서는 count라는 변수를 useRef 훅을 사용하여 선언하고, 해당 변수를 상태로 사용할 수 있습니다.

요약

이제 useRef 훅의 기본적인 사용법과 간단한 예제를 살펴보았습니다. useRef 훅을 사용하면 StatefulWidget 내에서 상태를 보존하고, 해당 상태를 변경하지 않고도 상태를 유지할 수 있습니다. useRef 훅을 효과적으로 활용하여 Flutter 애플리케이션을 개발하는데 도움이 될 것입니다.

참조: Flutter Hooks 문서