我想了解 Flutter 应用程序中 Ephemeral 状态和 App 状态之间的区别。有没有什么简单的例子可以理解它。
Dil*_*han 14
有 02 种小部件。
\n 1.StatelessWidget\n 2.StatefulWidget\n
Run Code Online (Sandbox Code Playgroud)\n1.StatelessWidget - 该小部件只有一个构建方法。(返回子小部件)。
\n2.StateFulWidget - 此小部件具有构建方法(子小部件),并且此构建方法
\n使用状态对象作为其一部分。
(这意味着,在有状态小部件中 UI = 构建方法 + 状态)。这张图片表明
\n什么是国家
\n状态是构建方法用作其小部件树的一部分的任何数据。
\n什么是临时状态和应用程序状态
\n1- 短暂状态- 当您的状态变量位于有状态小部件内部时,其称为短暂状态。
\n下面的代码显示了短暂的状态(这里_counter变量是状态)
\nNote -: ephemeral state is always place inside the *State class*
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)\n2- 应用程序状态- 当您的状态变量位于有状态小部件之外时,其称为应用程序状态。(因为该状态被许多小部件使用)
\n为了管理应用程序状态,您必须使用状态管理解决方案(继承的小部件或第三方库)。下面的代码显示了如何使用 Cubit 状态管理库来管理计数器值(int)。
\nclass 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~ 为了管理临时状态,您只能使用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
归档时间: |
|
查看次数: |
4562 次 |
最近记录: |