Khozhiakbar Khodzhaev Asked:2020-12-12 13:58:35 +0800 CST2020-12-12 13:58:35 +0800 CST 2020-12-12 13:58:35 +0800 CST statlesswidget 和 stateful 的区别 772 我是初学程序员,看不懂有什么区别,是不是总是互相开启?这个怎么运作 flutter 2 个回答 Voted Best Answer MiT 2020-12-12T19:44:53+08:002020-12-12T19:44:53+08:00 StatelessWidget - 推荐用于不可变小部件。这些是没有内部状态的小部件,仅取决于配置参数和父小部件。 下面是一些继承自 StatelessWidget 的小部件: Text() FlatButton() Container() и др. 从超类 StatelessWidget 创建小部件的最简单构造是: class MyWidget extends StatelessWidget { @override Widget build(BuildContext context) { return new Text('my text'); } } StatelessWidget - 内部状态为一且由我们预先知道的参数和数据形成的情况下需要。 StatefulWidget - 推荐用于具有可变内部状态 (State) 的可变小部件。可变状态是类实例的内部状态根据某些事件(通过按下、时间等)发生的变化。为此,您需要创建一个继承 StatefulWidget 的小部件。 下面是一些继承自 StatefulWidget 的小部件: Image() Form() и др. 从 StatefulWidget 超类创建小部件的最简单构造是: class MyWidget extends StatefulWidget { @override createState() => new MyWidgetState(); } class MyWidgetState extends State<MyWidget> { @override initState() { super.initState(); // ... } @override Widget build(BuildContext context) { return new Text('my text'); } } StatefulWidget - 当有多个内部状态并且它们可以相互替换时需要。 Flutter 的创建者建议在没有StatefulWidget的情况下使用StatelessWidget。这是因为重建StatefulWidget的成本要高得多(在资源消耗和渲染方面)。还建议在StatefulWidget中将子小部件保持在最低限度。 资源 Дмытрык 2020-12-12T15:59:46+08:002020-12-12T15:59:46+08:00 一切都与性能有关。 StatelessWidget- 当其中的数据不需要更改时使用此小部件。那些。他,以及他体内的一切,都被创造了 1 次。如果您想以某种方式更改其中的数据,那么实际上,该小部件将被重新创建,即 这将是另一个小部件 StatefulWidget- 分别,反之亦然。当其中的数据在其存在期间出现变化时使用它。
StatelessWidget - 推荐用于不可变小部件。这些是没有内部状态的小部件,仅取决于配置参数和父小部件。
下面是一些继承自 StatelessWidget 的小部件:
从超类 StatelessWidget 创建小部件的最简单构造是:
StatelessWidget - 内部状态为一且由我们预先知道的参数和数据形成的情况下需要。
StatefulWidget - 推荐用于具有可变内部状态 (State) 的可变小部件。可变状态是类实例的内部状态根据某些事件(通过按下、时间等)发生的变化。为此,您需要创建一个继承 StatefulWidget 的小部件。
下面是一些继承自 StatefulWidget 的小部件:
从 StatefulWidget 超类创建小部件的最简单构造是:
StatefulWidget - 当有多个内部状态并且它们可以相互替换时需要。
Flutter 的创建者建议在没有StatefulWidget的情况下使用StatelessWidget。这是因为重建StatefulWidget的成本要高得多(在资源消耗和渲染方面)。还建议在StatefulWidget中将子小部件保持在最低限度。
资源
一切都与性能有关。
StatelessWidget
- 当其中的数据不需要更改时使用此小部件。那些。他,以及他体内的一切,都被创造了 1 次。如果您想以某种方式更改其中的数据,那么实际上,该小部件将被重新创建,即 这将是另一个小部件StatefulWidget
- 分别,反之亦然。当其中的数据在其存在期间出现变化时使用它。