前言
上一篇我们介绍了 GetX 的的简单状态管理 GetBuilder 的使用,本篇我们继续,来在状态管理中完成网络请求后更新界面。我们这一篇来对比一下 GetX 和 Provider 的差异。
状态代码
这里我们网络请求还是使用 Dio,原先的请求相关的代码我们直接复制过来了,源码可以在这里下载:GetX应用代码。在 VSCode 的编辑界面输入 getcontroller 代码模板指令(需要安装 GetX Snippets 扩展)来说输入状态管理代码。这里我们有两个状态属性,一个是网络请求状态枚举_loadingStatus ,用于指示网络请求状态;另一个是掘金的个人信息_personalProfile 。在构造方法中我们传递用户id,来请求个人信息数据。 可以看到,实际上的代码和计数器的基本上一样,也是更新状态对象最新值,使用 update 通知界面刷新。存在的差别在于我们引入了 GetxController 的一个生命周期函数onReady 来进行网络请求。onReady 在 GetX 的说明如下:
Called 1 frame after onInit(). It is the perfect place to enter navigation events, like snackbar, dialogs, or a new route, or async request.
|