在实际的 App 中,下拉刷新和上滑加载更多是非常常见的交互形式。在 Flutter 中,有 flutter_easyrefresh开源插件用于实现下拉刷新和上滑加载更多。本篇介绍了有状态组件和 flutter_easyrefresh 的基本应用,同时使用模拟的方式完成了异步数据加载。
有状态组件
当 Flutter 的页面需要动态更新数据的时候,就会涉及到 UI 组件需要根据数据变化更新,此时也就意味着组件有了“状态”。这就类似 React 的类组件和函数组件(只是后续 React 使用了勾子函数实现了函数组件也可以有状态)。在 Flutter 中,组件也分为无状态组件(StatelessWidget)和有状态组件(StatefulWidget),一般尽量使用无状态组件。但是如果组件本身需要维护自身状态的时候,就需要使用有状态组件了。有状态组件的定义形式如下:
//有状态组件声明
class DynamicPage extends StatefulWidget {
DynamicPage({Key key}) : super(key: key);
//创建组件状态
@override
_DynamicPageState createState() => _DynamicPageState();
}
//组件状态
class _DynamicPageState extends State<DynamicPage> {
@override
Widget build(BuildContext context) {
//UI 构建
}
}
有状态组件实际的业务逻辑均由对应的状态实现,包括数据定义和 UI 构建。其核心在于