[Flutter] 플러터 Provider 라이브러리를 이용한 상태 관리

dino0806·2022년 2월 22일
0

Provider

  • 상태가 변화되었다라는걸 다른곳에 알려주는 기능이다.
  • 만약 상태가 변화된게 여러개라면 여러개의 provider를 추가해서 multiprovider를 사용하면된다.
  • provider는 제공자이고 consumer는 소비자이다.
  • 어떠한 데이터를 제공할때는 provider로 제공한다.

Provider를 이용하여 Count앱 만들기

  • Provider 를 인스톨한다.
  • Counter객체를 만든다.

  • with 란?
    • implements 랑은 다르다. implements 은 모든 추상메서드를 오버라이드 해줘야한다
    • with는 선택적으로 오버라이드가 가능한다, 다른언어의 mixin 처럼 쓰인다.
  • ChangeNotifier는 변경을 통제하는 기능이다.

  • 여기서 가지고 있어야 할 값은 count이다. private 하게 만들어주고
  • getter도 만들어준다.

  • addCount도 만들어줘야한다. _count함수를 1씩 증가시켜 주고 notifyListeners를 추가한다.
  • notifyListeners : 상태가 변했을때 다른 데서 감지해주는 기능이다.

  • 만든 provider를 최상단에 제공해서 모든곳에 뿌리고 싶다하면 MaterialApp에 제공하면된다.
  • MaterialApp 위젯을 잘라내기 하고 MultiProvider를 리턴해주자.
  • MultiProvider는 array 형태로 들어가야한다.

  • providers array 안에 ChangeNotiFierProvider를 만든다.
  • Create에 아까만들어 놓은 Counter를 람다식으로 넣어준다.
  • Consumer는 데이터를 소비하는 쪽이다, 명확하게 소비하는 것을 기재해야한다.

  • MaterialApp을 MultiProvider가 소비하는 consumer가 된다.

  • counter를 여기서 받아준다. 제공을 받게된다.

  • onpressed에 counter.addcount → 나눠놓은 파일에 따로 만들어줬던 것을 기재하고
  • Text에도 Counter.count를 불러온다.

0개의 댓글