대머리개발자

Flutter 상태관리 본문

개발이야기/플러터

Flutter 상태관리

대머리개발자 2023. 6. 8. 00:19
728x90

화면에 그려지는 데이터를 잘 관리하기 위해서 상태관리를 해야 한다. (액션과 상태 분리해야 한다고 한다...)

 

Flutter에서는 몇 가지 인기 있는 라이브러리가 존재한다.

(https://engineering.linecorp.com/ko/blog/flutter-architecture-getx-bloc-provider)

 

Flutter 인기 아키텍처 라이브러리 3종 비교 분석 - GetX vs BLoC vs Provider

안녕하세요. LINE+ ABC Studio에서 앱을 개발하고 있는 윤기영입니다. 최근 Flutter로 진행하는 새로운 앱 개발 업무를 맡아서 어떤 아키텍처 라이브러리를 사용할지 선정하는 작업을 진행했습니다.

engineering.linecorp.com

 

 

일단 Provider 로 테스트 진행하려고 하는데.. Provider 단점도 보완해서 나온 lib가 있다고 한다.

전역에서 관리하는 친구로 리액트로 따지면 "리덕스"라고 보면 된다.

 

[good luck] 버튼을 통해서 로또의 숫자를 생성하면.. 폼에 있는 seed, from, to 내용이 증발해 버린다. 

 

해결책은 단순하다.

StatelessWidget -> StatefulWidget

상태관리를 해주는 위젯으로 변경하면 된다.

 

물론 내용 증발해도 상관없는 경우는 그냥 사용해도 되지만

 "데이터"만 변경되는 부분은 상태 관리를 해줄수 있는 위젯으로 변경해야 한다.

 

참고)

StatelessWidget는 TextEditingController를 이용하면 했다. But 내용 증발!

StatefulWidget을 상속받아서 setState(..)를 이용한다. = 리액트 같다.ㅋ

 

 

계속 이야기 하지만 리액트와 무진장 동일하다.

시작점에 Provider 감싸주면 된다. 

void main() {
  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => LottoProvider()),
      ],
      child: MyApp(),
    ),
  );
}

 

그리고 사용하고자하는 페이지에서 역시 감싸주면 된다.

 

[good luck]이란 버튼에 

OutlinedButton(
onPressed: () {
context.read<LottoProvider>().suggestionLotto(_seed, _from, _to);
}
..

 

728x90

'개발이야기 > 플러터' 카테고리의 다른 글

앱 푸시 - FCM  (0) 2024.11.27
flutter 로또 어플 마무의리..(?)  (0) 2023.06.27
Flutter - 컴포넌트(2)  (2) 2023.06.07
Flutter - 컴포넌트  (0) 2023.05.31
Flutter - Error: Not a constant expression.  (0) 2023.05.30