Flutter应用程序中的Ephemeral状态和App状态是什么?

Goo*_*tan 4 dart flutter

我想了解 Flutter 应用程序中 Ephemeral 状态和 App 状态之间的区别。有没有什么简单的例子可以理解它。

Dil*_*han 14

有 02 种小部件。

\n
    1.StatelessWidget\n    2.StatefulWidget\n
Run Code Online (Sandbox Code Playgroud)\n

1.StatelessWidget - 该小部件只有一个构建方法。(返回子小部件)。

\n

2.StateFulWidget - 此小部件具有构建方法(子小部件),并且此构建方法
\n使用状态对象作为其一部分。

\n

(这意味着,在有状态小部件中 UI = 构建方法 + 状态)。这张图片表明

\n

现在我想你会了解有状态的小部件,它的 UI=build 方法(状态)。

\n

什么是国家

\n

状态是构建方法用作其小部件树的一部分的任何数据。

\n
\n

什么是临时状态和应用程序状态

\n

1- 短暂状态- 当您的状态变量位于有状态小部件内部时,其称为短暂状态。

\n

下面的代码显示了短暂的状态(这里_counter变量是状态)

\n

Note -: ephemeral state is always place inside the *State class*

\n
class Counter extends StatefulWidget {\n  \n\n  @override\n  _CounterState createState() => _CounterState();\n}\n\nclass _CounterState extends State<Counter> {\n  int _counter = 0;\n\n  void _increment() {\n    setState(() {\n      \n      _counter++;\n\n    });\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Row(\n      children: <Widget>[\n        RaisedButton(\n          onPressed: _increment,\n          child: Text(\'Increment\'),\n        ),\n        Text(\'Count: $_counter\'),\n      ],\n    );\n  }\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n
\n

2- 应用程序状态- 当您的状态变量位于有状态小部件之外时,其称为应用程序状态。(因为该状态被许多小部件使用)

\n

为了管理应用程序状态,您必须使用状态管理解决方案(继承的小部件或第三方库)。下面的代码显示了如何使用 Cubit 状态管理库来管理计数器值(int)。

\n
class CounterCubit extends Cubit<int> {\n  CounterCubit() : super(0);\n\n  void increment() => emit(state + 1);\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n
\n

~ 为了管理临时状态,您只能使用setState方法。

\n

~ 但是管理应用程序状态有很多方法。其中一些是

\n
       1.Inherited Widget (\xe2\x80\x9cFlutter\xe2\x80\x99s Monad\xe2\x80\x9d)\n       2.Scoped model\n       3.Provider\n       4.Bloc / cubit\n       5.Riverpod\n       6.Mobx\n       7.Binder\n       8.Redux\n
Run Code Online (Sandbox Code Playgroud)\n