본문 바로가기
Front-End

[flutter] flutter의 상태관리 라이브러리 GetX

by kimik 2021. 7. 8.

 

1. 상태관리

 

flutter를 처음 설치하고 나오는 counter앱의 일부분입니다.

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

위와같이 statefulWidget을 만들고 state를 사용할 _MyHomePageState와 MyHomePage를 extends해야하며 

 

state사용을 위해선 createState까지 필요합니다. 

 

하지만 GetX를 쓰면 

class Controller extends GetxController {
  var count1 = 0;

  void increment1() {
    count1++;
    update();
  }
}

위와같이 Controller파일을 생성후에 

import '../controllers/controller.dart';
import 'package:get/get.dart';

class View extends StatelessWidget {
  final Controller Controller = Get.put(Controller());
  ...
  child: Text(Controller.counter1,
    style: TextStyle(fontSize: 18),
  ),

와 같이 사용하면 손쉽게 count값을 가져올 수 있으며 Controller.increment1() 함수로 손쉽게 증가시킬 수 있습니다.

 

2. 라우팅 - 네비게이션

 

getX는 단순 상태관리 뿐만 아니라 라우팅 기능도 지원하고 있습니다. 

 

import 'package:get/get.dart';
import './detail_view.dart';

...
onPressed: () => Get.to(DetailView(), arguments: { 'index': index })
...

위와같이 detail_view를 import하고 해당 widget을 Get.to로 호출하면 손쉽게 라우팅 됩니다

댓글