GetX

概述

高性能的状态管理、智能的依赖注入和便捷的路由管理。

状态管理

Get有两个不同的状态管理器:简单的状态管理器(GetBuilder)和响应式状态管理器(GetX)。

1
2
3
4
5

//使得变量变的可观察
var name = 'Jonatas Borges'.obs;
//绑定UI
Obx(() => Text("${controller.name}"));

Read More

State

概述

State表示对应的StatefulElement需要保存的信息。

生命周期

常用属性

widget

它表示与该State实例关联的widget实例,由Flutter framework动态设置。注意,这种关联并非永久的,因为在应用生命周期中,UI树上的某一个节点的widget实例在重新构建时可能会变化,但State实例只会在第一次插入到树中时被创建,当在重新构建时,如果widget被修改了,Flutter framework会动态设置State.widget为新的widget实例。

context

StatefulWidget对应的BuildContext,作用同StatelessWidget的BuildContext,表示当前widget在widget树中的上下文,每一个widget都会对应一个context对象(因为每一个widget都是widget树上的一个节点)。

常用方法

initState

当Widget第一次插入到Widget树时会被调用,对于每一个State对象,Flutter framework只会调用一次该回调,所以,通常在该回调中做一些一次性的操作,
如状态初始化、订阅子树的事件通知等。不能在该回调中调用BuildContext.dependOnInheritedWidgetOfExactType
(该方法用于在Widget树上获取离当前widget最近的一个父级InheritFromWidget,关于InheritedWidget我们将在后面章节介绍),原因是在初始化完成后,
Widget树中的InheritFromWidget也可能会发生变化,所以正确的做法应该在build()方法或didChangeDependencies()中调用它。

Read More