状态管理的应用,在实际项目开发中应用场景也是不少的,截至目前,关于状态管理的插件也是有很多种了,这里就不罗列了,之前一直用的谷歌的provide,因为相对其他插件来说上手比较容易,but!万万没想到放弃维护了,和GitHub上某位大佬组队共同维护provider去了!没办法,只能再去看看provider,继续用provide的话怕以后出现问题,今天大概看了一下provider的简单用法。
看完之后发现,也没有什么太大变化嘛!当然,没有深入看,只是看了基本常规用法,求大佬轻喷?。
主要是main文件的注册方式发生了点变化。如下:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(builder: (_) => Counter()),
],
child: MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false,
home: Home(),
),
);
}
}
还是以Counter为例:
import 'package:flutter/material.dart';
class Counter extends ChangeNotifier {
int value = 0;
void add() {
this.value++;
notifyListeners();
}
}
设置值:
Provider.of<Counter>(context).add();
获取值并显示(还有另一种取值设置方法,个人不是太喜欢,哈哈):
Text("${Provider.of<Counter>(context).value}"),
关于设置值以及取值的用法,这些跟provide也没啥太大区别,无非换个名字而已:Provide----->Provider。