Front-End
[flutter] flutter의 상태관리 라이브러리 GetX
kimik
2021. 7. 8. 09:59
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로 호출하면 손쉽게 라우팅 됩니다