Provider 와 StateProvider의 사용에 관해.
강의 잘 듣고 있습니다. 한 가지 의문이 있어 글 올립니다. 강의 내용 중 provider.dart에서
final filterShoppingListProvider = Provider<List<ShoppingListItem>>((ref) { } 부분에서
final filterShoppingListProvider = StateProvider<List<ShoppingListItem>>((ref) { } 로 사용하면 어떻게 다를까요?
Provider 안에 속한 Provider를 인지하기 위해 꼭 Provider를 사용한다는 걸까요?...
1회성은 StateProvider를 쓴다는 식으로 이해하면 되겠습니까?
답변 2
0
안녕하세요!
Provider는 캐싱을 위해서 사용합니다. 즉, 특정 값을 들고있는 목적입니다.
StateProvider는 Provider + 단순한 형태의 변경을 하는 Provider입니다.
예를들어서 정수 값을 들고있다가 해당 값을 변경하고싶다면 StateProvider를 사용하는게 맞고 단순히 특정 인스턴스를 캐싱해두고싶다면 Provider를 사용하는게 맞습니다.
Riverpod 본문도 첨부해드립니다.
Provider is typically used for:
caching computations
exposing a value to other providers (such as a
Repository/HttpClient).offering a way for tests or widgets to override a value.
reducing rebuilds of providers/widgets without having to use
select.
StateProvider is a provider that exposes a way to modify its state. It is a simplification of NotifierProvider, designed to avoid having to write a Notifier class for very simple use-cases.
StateProvider exists primarily to allow the modification of simple variables by the User Interface.
The state of a StateProvider is typically one of:
an enum, such as a filter type
a String, typically the raw content of a text field
a boolean, for checkboxes
a number, for pagination or age form fields
You should not use StateProvider if:
your state needs validation logic
your state is a complex object (such as a custom class, a list/map, ...)
the logic for modifying your state is more advanced than a simple
count++.
감사합니다!
Isar 마지막 업데이트는 2년전입니다.
0
25
0
FlutterSecureStorage 질문
0
25
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
74
2
관리자 기능에 대한 질문
0
96
2
part 'restaurant_model.g.dart';
0
91
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
54
2
2번 반환 상황 관련 질문
0
58
2
riverpod 3.0
0
139
2
Asset folder??
0
79
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
111
2
FutureProvider, StateNotifierProvider 선택 기준
0
68
2
컴포넌트 모델화
0
61
2
쿼리 파라미터
0
81
2
화면 안보임
0
64
2
PaginationListView
0
50
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
99
2
프로토타입이미지
0
59
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
82
2
장바구니 결제하기 응답이 500이 옵니다.
0
102
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
64
2
이 두가지는 완전히 동일한 기능인가요?
0
104
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
75
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
81
2
코딩 작성 순서 관련 질문
0
83
2





