상태관리 라이브러리를 사용하는 이유 플러터에서 상태를 관리하는 기초적 방법은 setState를 사용하는 것이다. 하지만 위젯 트리의 뎁스가 커지고 스크린에서 스크린으로 데이터를 넘겨줄 때 많은 어려움이 발생한다. 이러한 점을 완화시켜주기 위해 상태관리 툴을 사용하는 것이다. 상태관리에 몇 가지 라이브러리가 있는데 여기서는 riverpod를 사용해 볼 것이...
가장 기본이 되는 stateProvider를 살펴보겠다. Provider 생성 state_provider.dart 파일을 생성하고 코드를 작성한다. StateProvider를 작성하면 자동완성으로 riverpod이 import된다. StateProvider 파라미터에는 함수를 받는데 여기서 null은 관리하고 싶은 값이 들어가게 된다. 이번 예제에서는 ...
StateProvider와 마친가지로 UI에서 직접적으로 데이터를 변경할 수 있도록 하고 싶을 때 사용한다. 복잡한 형태의 데이터 관리가 가능하다.(클래스의 메소드를 이용한 상태관리) StateNotifier를 상속한 클래스를 반환한다. stateNotifierProvider를 사용하기 전에 몇가지 값들이 들어있는 모델을 생성했다. 생성하기 우선 코...
Future 타입만 반환가능하다 API 요청의 결과를 반환 할 때 자주 사용한다. 복잡한 로직 또는 사용자의 특정 행동 뒤에 Future를 재실행하는 기능은 없고 1회성이라고 생각하면 된다. 생성하기 async 요청을 가정해서 예제를 작성해 보겠다. 2초 뒤에 리스트를 반환하는 Provider를 작성했다. multipleFutureProvider를 w...
Stream 타입만 반환가능하다. API 요청 결과를 Stream으로 반환 할 때 자주 사용한다. Socket등... 생성하기 길이가 3인 리스트에 각각의 값을 i를 곱해가는 Provider를 생성한다. 사용하기 futureProvider와 마친가지로 when을 사용해서 코드를 작성한다. watch를 통해서 provider 값이 변경될 때마다 bu...
Modifier에는 family와 autoDispose 두 종류가 있고 어떤 Provider에도 적용시킬 수 있다. family 생성하기 Modifier는 어떤 Provider에 사용해도 상관없다. 예제에서는 FutureProvider를 사용해 보겠다. Modifier는 사용하는 Provider에 .을 사용해서 추가 할 수 있다. family를 사용하...