ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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가 다시 호출되어야 하는지 여부를 결정한다.

     

    참고 글 :

    1. https://medium.com/@mate6365/flutter-dart-provider%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC-2063a89a1f0
    2. https://letyarch.blogspot.com/2020/01/flutter-selector.html
    3. https://s-o-h-a.tistory.com/56
Steadyyeon