Provider.of
: 이 메서드는 위젯 트리의 주어진 컨텍스트에서 가장 가까운 Provider를 찾아 값을 얻습니다. 선택적으로 리스너를 건너뛸 수 있으며 (listen: false
), 이 경우 위젯이 데이터 변경에 따라 다시 빌드되지 않습니다.
notifyListeners()
: ChangeNotifier의 메서드로서, 이 메서드를 호출하면 ChangeNotifier에 등록된 모든 리스너에게 알림을 보냅니다. 이를 통해 데이터가 변경되었음을 알리고, 이 변경을 수신하는 위젯들이 자동으로 다시 빌드될 수 있습니다.
ChangeNotifierProvider
: 이 클래스는 ChangeNotifier의 인스턴스를 생명주기에 따라 자동으로 제공합니다. ChangeNotifierProvider
를 사용하면 자동으로 리스너를 설정하고, 위젯이 제거될 때 리스너를 제거합니다. 또한 데이터 변경 시 위젯을 자동으로 다시 빌드합니다.
ChangeNotifierProvider.value
: 기존 ChangeNotifier의 인스턴스를 제공하는 데 사용됩니다. ChangeNotifierProvider.value
는 주로 상위 트리에서 이미 생성된 ChangeNotifier를 재사용하려는 경우에 사용됩니다.
MultiProvider
: 여러 Providers를 한꺼번에 제공할 수 있도록 해주는 위젯입니다. 각각의 Provider들은 독립적으로 작동하며, 상태 변경 시 해당 Provider를 사용하는 위젯만 다시 빌드됩니다.
Consumer
: 이 위젯은 주어진 Provider
의 현재 상태를 사용하여 위젯을 빌드합니다. 이를 통해, 상태가 업데이트될 때마다 Consumer
에 의해 빌드된 위젯도 자동으로 다시 빌드됩니다.
Selector
: 이 위젯은 Consumer
와 비슷하지만, 특정 조건에 따라 위젯의 다시 빌드 여부를 결정하는 더 세밀한 제어를 제공합니다. 이를 통해 불필요한 위젯의 재빌드를 방지할 수 있습니다.
FutureProvider
: 이 provider는 Future
를 사용하여 값을 제공합니다. 이를 사용하면 Future
가 완료될 때까지 위젯 트리에서 사용할 기본 값을 제공할 수 있습니다.
StreamProvider
: 이 provider는 Stream
을 사용하여 값을 제공합니다. 이를 사용하면 Stream
의 최신 값을 위젯 트리에서 사용할 수 있습니다.
ProxyProvider
: 이 provider는 다른 provider의 상태를 기반으로 상태를 생성하거나 수정하는데 사용됩니다. 이를 통해 서로 다른 provider 간의 의존성을 표현할 수 있습니다.