[flutter] 플러터의 useRef 훅(hook)을 사용한 DOM 조작 예제

플러터(Flutter)에서 useRef 훅을 사용하면 DOM 요소를 직접 조작할 수 있습니다. 이 글에서는 useRef 훅을 사용하여 특정 DOM 요소를 가져오고 조작하는 간단한 예제를 제공하겠습니다.

useRef 훅이란?

useRef 훅은 함수형 컴포넌트에서 DOM 요소나 변수를 참조하기 위해 사용됩니다. useRef를 사용하면 DOM 요소의 속성이나 메서드에 접근할 수 있습니다.

useRef 훅을 사용한 DOM 조작 예제

다음은 useRef 훅을 사용하여 DOM 요소를 가져오고 조작하는 예제 코드입니다.

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

class MyComponent extends HookWidget {
  @override
  Widget build(BuildContext context) {
    final buttonRef = useMemoized(() => GlobalKey());

    useEffect(() {
      final buttonElement = buttonRef.current?.context?.findRenderObject() as RenderRepaintBoundary?;
      // DOM 요소에 대한 조작 코드 작성
    }, []);

    return Scaffold(
      appBar: AppBar(
        title: Text('useRef Example'),
      ),
      body: Center(
        child: RepaintBoundary(
          key: buttonRef,
          child: ElevatedButton(
            onPressed: () {},
            child: Text('My Button'),
          ),
        ),
      ),
    );
  }
}

위의 예제 코드에서는 useRef 훅을 사용하여 ElevatedButton 요소에 대한 참조를 가져온 후, useEffect를 사용하여 DOM 요소를 조작하고 있습니다.

결론

이 예제를 통해 useRef 훅을 사용하여 플러터 앱에서 DOM 요소를 조작하는 방법을 살펴보았습니다. useRef를 사용하면 특정 DOM 요소에 대한 접근과 조작이 가능해지므로, 필요한 경우에 유용하게 활용할 수 있습니다.

더 많은 useRef 훅에 대한 정보는 공식 문서를 참고하세요.