-
[Flutter] Provider 에 대해개발/Flutter 2024. 3. 17. 10:17
Provider란?
Flutter에서 상태 관리를 쉽게 도와주는 도구 중 하나. 앱의 상태를 관리하고, 상태에 따라 UI를 업데이트 할 수 있다.
Provider의 주요 기능
상태 관리: 앱의 상태를 관리하고 그 상태에 따라 UI를 업데이트한다.
의존성 주입: Provider는 의존성 주입을 지원하여 애플리케이션 내에서 필요한 데이터나 서비스를 쉽게 전달할 수 있다.
성능 최적화: Provider는 ‘lazy loading’을 지원하므로 필요할 때만 특정 서비스를 생성할 수 있다.Provider 의 주요 메소드
- watch
Provider의 변화를 감지해 데이터를 얻고 해당 메소드가 포함된 위젯을 재빌드한다. - read
Provider의 데이터를 읽고 변경할 수 있음(접근은 하지만 재빌드는 하지않음) - select
watch와 유사하게 변화를 감지하고 위젯을 재빌드 하지만 Provider내의 특정 속성의 변화만을 감지할 수 있다.
Provider의 Selector
ChangeNotifierProvider가 값을 노출(expose) 하는 위젯의 핵심이라면, Selector는 값을 읽는 위젯의 핵심.
Selector (= Consumer)
- 변경 사항을 선택된 값들로 필터링하고 변경되지 않은 경우 다시 빌드되지 않도록하는 기능을 가지고 있다.
- Provider.of를 사용하여 값을 가져온 다음 해당 값을 selector에 전달한다.
- selector 콜백은 builder가 완료될 수 있도록 필요한 정보만 포함된 객체를 반환하는 역할을 한다.
Selector 동작 원리
기본적으로 Selector는 이전과 새로운 selector 결과를 collection 패키지의 DeepCollectionEquality를 사용하여 비교하여 builder가 다시 호출되어야 하는지 여부를 결정한다.
참고 글 :
- watch