之前我们用 Provider 做状态管理的时候,就是根据需求定义一些 model 类,在里面添加小部件需要的数据,还有一些方法,然后用 Provider 给小部件提供这些 model 类的实例。
使用 Mobx 做状态管理的话,可以根据需要创建一些 Store ,在 Store 里面可以添加一些数据还有动作。
创建 Store
下面我们就去演示一下如何在 Flutter 应用里使用 MobX 管理应用的状态。可以先根据应用的需求创建一个 Store ,比如在 lib/app 的下面,新建一个 store,名字是 app_store.dart 。
在这个 store 里面,先导入 package:mobx/mobx.dart,然后用 part 包含进来一个文件,名字是 app_store.g.dart,这个文件一会我们会用命令自动生成它。
定义一个类,名字叫 AppStore 等于 _AppStore with _$AppStore , 这个 _$AppStore 是个 mixin,它会来自上面用 part 包含进来的这个文件,这里就是 app_store.g.dart。
下面再定义一个 abstract class,名字是 _AppStore ,让这个类用一下 Store 这个 mixin ,这个 Store 来自 mobx 这个包。
在我们定义的这个 Store 里面可以添加一些数据还有动作,然后要执行一个命令生成对应的需要的代码。
命令
在终端,项目所在目录的下面,执行一下 flutter pub run build_runner build ,这个命令会自动生成项目需要的代码,或者我们也可以执行 flutter pub run build_runner watch ,这个命令会一直监视项目文件的变化,然后自动执行 build 命令,生成需要的东西。
如果你发现没起作用的话,可以在执行这个命令的后面,加上一个 --delete-conflicting-outputs 这个选项。
完成以后你会发现在这个 app_store.dart 文件同一个目录里面,会出现一个 app_store.g.dart,这个文件就是用命令自动生成的。