flutter - Flutter Application 中的 Ephemeral state 和 App state 是什么?
问题描述
我想知道 Flutter Application 中 Ephemeral state 和 App state 的区别。有没有简单的例子来掌握它。
解决方案
有 02 种类型的小部件。
1.StatelessWidget
2.StatefulWidget
1.StatelessWidget - 这个小部件只有一个构建方法。(它返回子小部件)。
2.StateFulWidget - 这个小部件有一个构建方法(子小部件),这个构建方法
使用状态对象作为它的一部分。
(这意味着,在有状态的小部件中 UI = 构建方法 + 状态)。这张图片表明
现在我想你会知道有状态的小部件,它的 UI=build 方法(状态)。
什么是状态
状态是构建方法用作其小部件树的一部分的任何数据。
什么是 Ephemeral 状态和 App 状态
1- 短暂状态- 当您的状态变量在有状态小部件内部时,它被称为短暂状态。
在该代码下方显示短暂状态(这里_counter变量是状态)
Note -: ephemeral state is always place inside the *State class*
class Counter extends StatefulWidget {
@override
_CounterState createState() => _CounterState();
}
class _CounterState extends State<Counter> {
int _counter = 0;
void _increment() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Row(
children: <Widget>[
RaisedButton(
onPressed: _increment,
child: Text('Increment'),
),
Text('Count: $_counter'),
],
);
}
}
2- 应用程序状态- 当您的状态变量在有状态小部件之外时,它被称为应用程序状态。(因为该状态被许多小部件使用)
要管理应用程序状态,您必须使用状态管理解决方案(继承的小部件或第三方库)。下面的代码显示了如何使用 Cubit 状态管理库管理计数器 value(int)。
class CounterCubit extends Cubit<int> {
CounterCubit() : super(0);
void increment() => emit(state + 1);
}
~ 要管理临时状态,您只能使用setState方法。
~ 但是对于管理应用程序状态有很多方法。其中一些是
1.Inherited Widget (“Flutter’s Monad”)
2.Scoped model
3.Provider
4.Bloc / cubit
5.Riverpod
6.Mobx
7.Binder
8.Redux
推荐阅读
- python - 更改组合问题:我找到了这段代码,但我无法理解某些行
- python - 应用返回错误消息的函数:“时间戳”对象不可下标
- javascript - Vaadin 14 Springboot javascript不起作用
- ios - 安装 Cocoapods 时出错:[!] Invalid `Podfile` 文件:未定义的局部变量或方法 `cocoapods' 用于#
- algorithm - 我的递归记忆解决方案的运行时间是多少
- config - Mosquitto Bridge 主题设置忽略模式
- notion-api - 如何从 Notion 中删除表中的一行?
- powerbi - 如何在 Power BI 中的两行计算中添加新列?
- python - 如果字符串中没有空格,如何在字符串中添加空格?
- node.js - 猫鼬不在nodejs中获取数据