flutter状态管理
# flutter状态管理
# 1 各种状态管理框架对比
我们把常见库按照如何传递状态
来分类:
- 用 widget (
StatefulWidget
,InheritedWidget
,provider
) - 用 stream (
flutter_bloc
,flutter_redux
) - 用 subscription (
getx
,riverpod
,flutter_mobx
) - 用 graph (
creator
)
# getX专题
一篇入门使用:Flutter GetX使用---简洁的魅力! (opens new window)
一篇原理深度剖析:Flutter GetX深度剖析 | 我们终将走出自己的路(万字图文) (opens new window)
代码生成插件使用篇: GetX代码生成IDEA插件,超详细功能讲解(透过现象看本质) (opens new window)
https://www.codetd.com/article/13678155 (opens new window)getx tag使用
# getx tag在封装ui组件中的使用:
代码模板:
class CommonListComponent extends StatelessWidget {
String tag ;
CommonListLogic? logic ;
CommonListState? state;
CommonListComponent({ required this.tag}){
initGetX();
}
void initGetX() {
logic = Get.find<CommonListLogic>(tag: tag);
if(logic == null){
logic = Get.put(CommonListLogic(tag: tag),tag: tag);
}
state = logic!.state;
}
Widget build(BuildContext context) {
return GetBuilder<CommonListLogic>(
builder: (controller) {
return Container();
},
tag: tag,);Container();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class CommonListLogic extends GetxController {
final CommonListState state = CommonListState();
String tag;
CommonListLogic({ required this.tag});
void onReady() {
// TODO: implement onReady
super.onReady();
}
void onClose() {
// TODO: implement onClose
super.onClose();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# getx和混合开发的栈管理:
https://github.com/skyNet2017/min_stack_manager
# 参考
编辑 (opens new window)
上次更新: 2022/09/22, 18:30:14