【问题标题】:What is called as Ephemeral state and App state in Flutter Application?Flutter Application 中的 Ephemeral state 和 App state 是什么?
【发布时间】:2020-05-31 10:03:10
【问题描述】:

我想了解一下 Flutter Application 中 Ephemeral state 和 App state 的区别。有没有简单的例子来掌握它。

【问题讨论】:

标签: flutter dart


【解决方案1】:

小部件有 02 种类型。

    1.StatelessWidget
    2.StatefulWidget

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

2.StateFulWidget - 此小部件具有构建方法(子小部件)和 此构建方法
使用状态对象作为它的一部分。

(这意味着,在有状态的小部件中 UI = 构建方法 + 状态)。this image shows that

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

什么是状态

State 是 build 方法使用的任何数据,作为其小部件树的一部分。


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

1- 短暂状态 - 当您的状态变量在 Stateful 小部件内部时,称为短暂状态。

下面的代码显示了短暂的状态(这里 _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- App State - 当您的状态变量位于 Stateful 小部件之外时,它称为 App 状态。 (因为该状态被许多小部件使用)

要管理应用程序状态,您必须使用状态管理解决方案(继承的小部件或第三方库)。下面的代码展示了如何使用 Cubit 状态管理库来管理 counter 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

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2013-09-05
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    相关资源
    最近更新 更多