一丶 状态管理

通俗的讲:当我们想在多个页面(组件/Widget)之间共享状态(数据),或者一个页面(组
件/Widget)中的多个子组件之间共享状态(数据),这个时候我们就可以用 Flutter 中的状
态管理来管理统一的状态(数据),实现不同组件直接的传值和数据共享。
现在 Flutter 的状态管理方案很多,redux、bloc、state、provide、provider。
目前我们推荐使用 provider,这个是官方提供的状态管理解决方案。相比其他状态管理库使
用起来比较方便。

二、 关于 于flutter provider 库和 和 flutter provide 库

provider 是 Flutter 团队推出的状态管理模式。
官方地址为: https://pub.dev/packages/provider
注意:p rovider 和 provide 是两个库哦。Flutter 官方推荐使用的是 provider 哦,provider 是
flutter 官方出的。provide 不是 Flutter 官方写的哦

三丶 flutter provider 的使用

1、配置依赖 provider: ^3.0.0+1
2、新建一个文件夹叫 provider,在 provider 文件夹里面放我们对于的状态管理类
3、在 provider 里面新建 Counter.dart
4、Counter.dart 里面新建一个类继承 minxins 的 ChangeNotifier 代码如下

import 'package:flutter/material.dart';
class Counter with ChangeNotifier {int _count = 0;int get count => _count;void increment() {_count++;notifyListeners();}
}

5、找到 main.dart 修改代码如下

import 'package:flutter/material.dart';
import 'routers/router.dart';
import 'package:provider/provider.dart';
import 'provider/Counter.dart';
void main() =>runApp(MyApp());
// void main() => runApp(MyApp());
class MyApp extends StatefulWidget {MyApp({Key key}) : super(key: key);_MyAppState createState() => _MyAppState();
}class _MyAppState extends State<MyApp> {@overrideWidget build(BuildContext context) {return MultiProvider(providers: [
// Provider<Counter>.value(value: foo),ChangeNotifierProvider(builder: (_) => Counter()),],child: MaterialApp(
// home: Tabs(),debugShowCheckedModeBanner: false,initialRoute: '/productContent',onGenerateRoute: onGenerateRoute,theme: ThemeData(
// primaryColor: Colors.yellowprimaryColor: Colors.white),),);}
}

6、获取值、以及设置值

import 'package:provider/provider.dart';
import '../../provider/Counter.dart';
Widget build(BuildContext context) {final counter = Provider.of<Counter>(context);
// counter.init();return Scaffold(floatingActionButton: FloatingActionButton(child: Icon(Icons.add),onPressed: (){counter.increment();},),body: Text("counter 的值:${counter.count}"));
}

Flutter高级第5篇:官方推荐的状态管理库 provider 的使用相关推荐

  1. Flutter实战5 -- 天气查询APP重构之状态管理(ScopedModel)

    0x00 前言 前面四篇文章: Flutter实战1 --- 写一个天气查询的APP Flutter实战2 --- 写一个天气查询的APP FFlutter实战3 --- PC上运行Flutter A ...

  2. 【转】Asp.net控件开发学习笔记整理篇 - Asp.net客户端状态管理

    最近一直在做MVC项目,对于WEBFORM 好像快忘记了.周末无聊,顺带看看他人的笔记.再次温习下. 复习大纲: 导航.页面生命周期及其它导论 一.服务器控件生命周期 二.控件开发基础 三.Asp.n ...

  3. Flutter项目该如何选择状态管理?

    状态管理原则 我们在开发过程中,为了提高项目的可维护度和性能,也为了让页面UI跟数据(本地或服务端数据)有效分离的同时又能有效同步,都会让项目保持清晰的目录结构.同时启用状态管理库. 而MVVM模式已 ...

  4. Flutter 状态管理指南之 Provider

    2019 Google I/O 大会,Flutter 团队在"Pragmatic State Management in Flutter "演讲上正式介绍了 Provider.自此 ...

  5. Flutter 状态管理

    目录 一.状态管理简介 1.1 为什么需要状态管理 1.1.1 Flutter与adr/ios UI框架区别 1.1.2 状态管理框架使用场景 1.2 需要解决的问题 二.状态管理框架现有方案调研 2 ...

  6. Flutter Riverpod 全面深入解析,为什么官方推荐它?

    随着 Flutter 的发展,这些年 Flutter 上的状态管理框架如"雨后春笋"般层出不穷,而近一年以来最受官方推荐的状态管理框架无疑就是 Riverpod ,甚至已经超过了 ...

  7. FLutter 官方推荐的二个动画插件lottie和Rive(flare)动画

    FLutter 官方推荐的二个动画插件lottie和rive(flare)动画 lottie 动画:Lottie是一个Android和iOS的移动库,它解析Adobe After Effects动画, ...

  8. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

  9. 关于python的一些好的书籍推荐-python官方推荐30本面向初学者的书籍!你看过几本?...

    现在大多数初学者学习python都是看教学视频,但是小编想说的是,如果你能把一本书籍认认真真的读完,那么比你看教学视频的效果要好的多!今天小编就来带大家看看python官方推荐的30本面向初学者的书籍 ...

  10. 学python买什么书好-python官方推荐30本面向初学者的书籍!你看过几本?

    现在大多数初学者学习python都是看教学视频,但是小编想说的是,如果你能把一本书籍认认真真的读完,那么比你看教学视频的效果要好的多!今天小编就来带大家看看python官方推荐的30本面向初学者的书籍 ...

最新文章

  1. 都说 HashMap 是线程不安全的,到底体现在哪儿?
  2. [ARM异常]-ARM Core中与中断相关的寄存器
  3. Java黑皮书课后题第8章:*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上。编写下面的方法,检测points数组中所有的点是否都在同一条直线上
  4. 安卓APP_ 控件(10)—— ListView可上下滑动的列表(重要)与ViewHolder优化
  5. java解析xml实例——获取天气信息
  6. SpringCloud集成Security安全(Config配置中心)
  7. 无缓冲channel与容量为1的channel的区别
  8. Intellij IDEA设置显示行号
  9. 使用EL表达式,显示Action中的数据
  10. dpkg和apt-get命令的用法
  11. 深度装机大师一键重装_deep深度装机大师一键安装Win10 64位旗舰版
  12. python化学公式配平_PYTHON趣用—配平化学方程式-阿里云开发者社区
  13. 什么是VBA,他有什么作用
  14. 微信企业号开发:企业支付成功后关闭交易页面问题
  15. 6.20thingworx之bug记录
  16. python 文本分析
  17. 游戏时弹出内存不能为read的提示框
  18. 影版《宫》曝海报 周冬雨:想与张艺谋再合作
  19. 【力扣周赛#324】6266. 使用质因数之和替换后可以取到的最小值+6267. 添加边使所有节点度数都为偶数+6268. 查询树中环的长度
  20. Serializers

热门文章

  1. 自然语言18.2_NLTK命名实体识别
  2. mouseover与mouseenter、 mouseout与mouseleave的区别
  3. .NET方向高级开发人员面试时应该事先考虑的问题
  4. 架构师之路(2)---详解面向过程
  5. 【2021ACL】NLP的应用
  6. 详解机器学习之感知机理论与实践
  7. 【python】命令行参数argparse用法详解
  8. leetcode—17.递归题目python解答
  9. PyTorch中在反向传播前为什么要手动将梯度清零?
  10. SpringCloud——服务调用