Flutter

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();
          },
        ));
  }
}
上一篇下一篇

猜你喜欢

热点阅读