Flutter状态管理
2019-08-15 本文已影响0人
挣扎在黑暗中的码畜
Flutter状态管理
ScopedModel 垃圾
Redux 咸鱼的 太大
bloc 也还行
StatefulWidget 耦合度高
Provide 谷歌亲儿子
DEMO
1.添加依赖
provide: ^1.0.2 #状态管理依赖
2.创建数据仓库counter.dart
class Counter with ChangeNotifier{//ChangeNotifier:实现可监听的简便方法
int value = 0;
///相加的方法
increment(){
value++;
///可以通知我们的听众 值改变了 局部刷新widget
notifyListeners();
}
}
3.app顶层的设置main.dart
void main() {
var counter = Counter();
var providers = Providers();
///注册依赖
providers..provide(Provider<Counter>.value(counter));
runApp(ProviderNode(child: MyApp(),providers: providers));
}
4.页面中使用
-读
class Number extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Provide<Counter>(
builder: (context,child,counter){
return Text("${counter.value}");
},
)
);
}
}
-写
class Button extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: RaisedButton(
child: Text("递增"),
onPressed: () {
print("点击了按钮");
Provide.value<Counter>(context).increment();
},
));
}
}