异步数据加载控件FutureBuilder和StreamBuilder

Name Desc
FutureBuilder 基于与Future交互的最新快照来构建自身的widget
StreamBuilder 基于与流交互的最新快照构建自身的widget

FutureBuilder和StreamBuilder都是Flutter中非常常用的异步数据加载控件,它们的区别和联系如下:

区别:

  • FutureBuilder用于异步操作只返回一次结果的情况,而StreamBuilder用于异步操作返回多次结果的情况。
  • FutureBuilder在异步操作完成后,只会重新构建一次UI,而StreamBuilder则会在异步操作更新数据时,不断重新构建UI。
  • FutureBuilder的builder函数的参数类型是AsyncSnapshot,而StreamBuilder的builder函数的参数类型是AsyncSnapshot,其中T分别表示异步操作返回的结果类型。

联系:

  • 无论是FutureBuilder还是StreamBuilder,在builder函数中都需要根据AsyncSnapshot的状态来构建UI组件,通常包括waiting(正在加载)、hasError(加载出错)、hasData(加载成功)等状态。
  • FutureBuilder和StreamBuilder都可以通过initialData参数来设置异步操作的初始值,以及通过future和stream参数来设置异步操作。

综上所述,FutureBuilder和StreamBuilder都是非常常用的异步数据加载控件,区别在于处理的异步操作类型不同,但它们在处理异步操作的过程中,都需要通过builder函数来根据AsyncSnapshot的状态来构建UI组件,从而展示异步数据的加载状态。

powered by Gitbook© 2023 编外计划 | 最后修改: 2023-11-24 03:36:59

results matching ""

    No results matching ""