[flutter] 플러터에서 훅(hook)을 활용하여 서버 API 요청 후 데이터 표시하기

플러터(Flutter)에서 훅(hook)을 활용하여 서버 API 요청을 보내고 데이터를 표시하는 방법을 알아보겠습니다.

목차

훅 소개

훅(Hook) 은 함수 컴포넌트에서 React에서의 상태와 라이프사이클 기능을 “훅”하여 사용할 수 있게 해주는 기능입니다. 이를 통해 자바스크립트 함수 컴포넌트에서 상태를 사용할 수 있게 되었고, 코드를 더 간결하게 작성할 수 있게 되었습니다.

플러터에서의 훅

플러터(Flutter)에서는 flutter_hooks 라이브러리를 통해 훅을 사용할 수 있습니다. 사용자 정의 훅을 만들고, 상태를 관리하며, 코드를 간결하게 작성할 수 있는 장점을 가지고 있습니다.

서버 API 요청하기

먼저, http 패키지를 사용하여 서버 API 요청 함수를 작성합니다.

예제:

import 'package:http/http.dart' as http;

Future fetchData() async {
  final response = await http.get('https://api.example.com/data');
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to load data');
  }
}

데이터 표시하기

이제, 플러터의 useEffect 훅을 사용하여 API 요청을 보내고 데이터를 가져온 후 화면에 표시합니다.

예제:

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) {
    final data = useState('');

    useEffect(() {
      fetchData().then((result) {
        data.value = result;
      });
    }, const []);

    return Scaffold(
      appBar: AppBar(
        title: Text('플러터 훅을 활용한 데이터 표시'),
      ),
      body: Center(
        child: Text(data.value),
      ),
    );
  }
}

위 예제에서는 useEffect 훅을 사용하여 데이터를 가져와 화면에 표시하고 있습니다.

이제 플러터에서 훅을 활용하여 서버 API 요청을 보내고 데이터를 표시하는 방법을 알아보았습니다.

관련 레퍼런스: flutter_hooks, http package