티스토리 뷰

반응형
상태관리 패키지를 사용하는 이유

Flutter의 경우 상태 관리를 위해서 기본으로 제공해 주는 StatefulWidget이 존재한다.

하지만 StatefulWidget의 경우 상태관리를 위해서는 setState만을 활용해야 하며

상태변경 시 서로 다른 페이지의 화면을 갱신해 주기에는 매우 까다롭다.

안 되는 건 아니지만 코드가 복잡해지고 길어지는 현상이 발생하기 때문에 아주 작은 프로젝트가 아니라면

해당 방식을 사용하는 건 추천하지는 않는다.

해당 문제를 해결하기 위해 상태관리 패지키를 사용하게 된다. 

대부분의 상태관리 패키지의 경우 중앙 집중식으로 데이터를 한 곳에 모아서 관리하게 되고 아래 이미지와 같이 최상단에 모아서 관리하고 사용하게 된다.

상태관리 패키지 사용

 

상태 관리 패키지 종류

pub.dev에서 상태관리 패키지중 가장 많은 Like를 받은 패키지들은 아래와 같다

1. GetX

2. Provider

3. BloC

4. Riverpod

 

이중 Provider는 flutter 공식 추전 패키지이고 사용법도 쉽다.

 

Provider

https://pub.dev/packages/provider

 

provider | Flutter package

A wrapper around InheritedWidget to make them easier to use and more reusable.

pub.dev

 

사용법
  1. 설치

         1) 안드로이드 스튜디오 기준 : 터미널 클릭 > fluuter pub add provider 실행

provider 설치

         2) pubspec.yaml 파일에 dependencies에 provider 추가 확인

provider 셋팅 확인

 

         3) 상태관리를 위한 dart파일 생성(이름_service.dart로 생성)

         4) 상태관리를 위하여 코드 작성

             - memoList가 변경되는 경우 해당 값을 보여주는 화면들을 모두 갱신하는 기능을 구현하기 위하여

               ChangeNotifier 클래스를 상속(extend) 받음

             - ChangeNotifier를 상속받은 경우 notifyListeners()를 호출하여 Consumer 위젯 들을 갱신

 

         5) runApp에 provider 설정

             - ChangeNotifierProvider 위젯을 통해 변화를 감지(하나만 감지 가능)

             -MultProvider로 ChangeNotifierProvider  위젯을 감싸 여러 개의 변화를 감지

             - child 지정한 위젯들에 위에서 설정한 provider 접근 가능

 

         6) provider 사용

             - 

Comsumer<클래스> : 클래스 정보의 갱신 시 화면을 새로 고침 해야 하는 경우 사용

             - context.read<클래스>() : 화면의 새로고침 없어 클래스의 정보를 사용할 경우

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함