flutter provider changenotifierprovider 问题
flutter provider changenotifierprovider question
我在flutter的网站上查看了以下代码:
void main() {
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => CartModel()),
Provider(create: (context) => SomeOtherClass()),
],
child: MyApp(),
),
);
}
我想知道,Provider 和 ChangeNotifierProvider 有什么区别?
谢谢!
从 provider package documentation(一直往下):
Provider:
The most basic form of provider. It takes a value and exposes it, whatever the value is.
ListenableProvider:
A specific provider for Listenable object. ListenableProvider will listen to the object and ask widgets which depend on it to rebuild whenever the listener is called.
ChangeNotifierProvider:
A specification of ListenableProvider for ChangeNotifier. It will automatically call ChangeNotifier.dispose when needed.
因此,ChangeNotifierProvider
是一种特定类型的 Provider
,它将侦听该对象并在更新此对象时重建其依赖的小部件。此外,它会在需要时自动调用 dispose
方法。
Provider
是通用提供程序,没有任何更复杂的功能,非常像优化的 Inherited Widget。
提供商
提供者是最基本的提供者小部件类型。您可以使用它向小部件树中的任何位置提供值(通常是数据模型对象)。每当值更改时,它都不会重建小部件树。它只是将模型传递给小部件树中的后代小部件。
ChangeNotifierProvider
ChangeNotifierProvider,ListenableProvider
的一个子类,用于 ChangeNotifier
。它监听模型对象的变化。每当调用 ChangeNotifier.notifyListeners
时,它都会重建依赖小部件。
我在flutter的网站上查看了以下代码:
void main() {
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => CartModel()),
Provider(create: (context) => SomeOtherClass()),
],
child: MyApp(),
),
);
}
我想知道,Provider 和 ChangeNotifierProvider 有什么区别?
谢谢!
从 provider package documentation(一直往下):
Provider: The most basic form of provider. It takes a value and exposes it, whatever the value is.
ListenableProvider: A specific provider for Listenable object. ListenableProvider will listen to the object and ask widgets which depend on it to rebuild whenever the listener is called.
ChangeNotifierProvider: A specification of ListenableProvider for ChangeNotifier. It will automatically call ChangeNotifier.dispose when needed.
因此,ChangeNotifierProvider
是一种特定类型的 Provider
,它将侦听该对象并在更新此对象时重建其依赖的小部件。此外,它会在需要时自动调用 dispose
方法。
Provider
是通用提供程序,没有任何更复杂的功能,非常像优化的 Inherited Widget。
提供商
提供者是最基本的提供者小部件类型。您可以使用它向小部件树中的任何位置提供值(通常是数据模型对象)。每当值更改时,它都不会重建小部件树。它只是将模型传递给小部件树中的后代小部件。
ChangeNotifierProvider
ChangeNotifierProvider,ListenableProvider
的一个子类,用于 ChangeNotifier
。它监听模型对象的变化。每当调用 ChangeNotifier.notifyListeners
时,它都会重建依赖小部件。