Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Archives
Today
Total
관리 메뉴

Flutter 개발 Story

Provider 패턴 본문

Flutter

Provider 패턴

flutter 개발하자 2021. 4. 26. 09:28

Provider란?

UI와 데이터 처리 로직 분리를 위해 사용하는 기술이다.

즉, 데이터를 담당하는 애가 다른 애들한테 데이터를 알려주는 기술이라고 생각할 수 있다.

 

Provider는 데이터 생산과 데이터 소비, 2가지의 구성으로 이루어진다.

(데이터를 어떻게 생산하느냐에 따라 Provider의 종류도 달라진다.)

 

믹스인  

 - dart에서 클래스를 확장하지 않고 다른 클래스의 메서드나 변수를 빌릴 수 있는 기술인다.

키워드 - with

 

Provider를 사용하는 순서는 아래와 같다.

1. 데이터를 생산하는 클래스를 만든다. 

- ChangeNotifier를 믹스인하는 클래스

ChangeNotifier는 Provider에서 setState없이 해당 기능을 할 수 있게 해주는 클래스로 notifyListeners()를 사용하면 UI가 업데이트 된다.

 

2. 변경되는 값을 사용하기 위해 최상위 부모 위젯을 ChangeNotifierProvider로 감싸준다.

-ChangeNotifierProvider 사용에는 데이터 타입을 정의해줘야한다.(1에서 만든 데이터 생성 클래스)

3. 다른 클래스에서 Provider에 접근하기 위해 Provider.of<데이터 타입>()를 선언한다.

notifyListeners()를 호출해 UI를 변경하면 true, 데이터만 호출하면 false

//ex) UI변경 + 데이터 호출 - Provider.of<ListItem>(context, listen: true).setItems();
//데이터만 호출 - Provider.of<ListItem>(context, listen: false).setItems();

전체 코드

Provider.of vs Consumer

Provider.of와 Consumer 둘 다 데이터 생산 클래스에 접근하기 위해 사용된다.

차이점은 무엇일까?

 

Provider.of는 메서드만 실행하는 것이고,

Consumer는 State의 변경에 의해 위젯을 리빌드 할때 사용한다.

'Flutter' 카테고리의 다른 글

위젯) SingleChildScrollView  (0) 2021.05.11
Flutter BLE 다루기  (0) 2021.04.30
State란?  (0) 2021.04.15
StateManagement(InheritedWidget, Provider)  (0) 2021.04.15
Gradle exception 에러  (0) 2021.04.05
Comments