Provider 是 Flutter 官方的状态管理框架,非常简单,入侵性小,还可以方便地组合和控制 UI 刷新粒度。Provider 就成为了官方推荐的状态管理方式之一。

Provider 是一个用来提供数据的框架。它是 InheritedWidget 的语法糖,提供了依赖注入的功能,允许在 Widget 树中更加灵活地处理和传递数据。

Provider基本原理

Untitled

Untitled

使用

Untitled

1. 安装Provider

在 pubspec.yaml 文件中添加 Provider 的依赖:

dependencies:
  flutter:
    sdk: flutter
  provider: 3.0.0+1  #provider 依赖

2. 创建数据模型

class LikesModel extends ChangeNotifier {
  int counter = 0;

  add() {
    // 更改数据
    counter++;
    // 通知监听者
    notifyListeners();
  }
}

3. 注册数据模型

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      // 注册数据模型
      create: (context) => LikesModel(),
      // 数据模型访问的范围,为这个组件
      child: MaterialApp(
        home: TestHome(),
      )
    );
  }
}