FutureBuilder 与 Streambuilder
FutureBuilder vs Streambuilder
大家好,我想从 Cloud firestore 中获取数据,但我不太确定在 Flutter 中使用哪个更有效。我应该使用 streambuilder 还是 futurebuilder。我有很多帖子都是红色的,但我不太明白其中的区别。谁能告诉我是否应该使用 streambuilder 或 futurebuilder 从 firestore
获取数据
StreamBuilder
和 FutureBuilder
具有相同的行为:它们监听各自对象的变化。并在收到新值通知时触发新构建。
最终,不同之处在于他们如何聆听 async calls
。
FUTUREBUILDER
它只有一个响应。 flutter Future
的一个非常常见的用法是在 http
调用期间。你可以用 Future
做的是听它的状态,也就是说,当它完成时或在通过 Future
完成获取数据后出现错误
STREAMBuilder
Stream
另一方面是Iterators
,它可以同化不同的价值观,这些价值观会随着时间的推移而改变。通过使用 Stream
、,您将获得每个新值,如果它有一些错误或完成并显示成功消息
代表:
switch (snapshot.connectionState){
case ConnectionState.none: //do something
break;
case ConnectionState.waiting: //do something
break;
case ConnectionState.active: //do something
break;
case ConnectionState.done: //do somethin
break;
}
以上,每次都会 运行,如果来自异步数据的值发生变化,即使您正在使用该应用程序,也会更新该值。它不会停止。并显示您放入特定案例中的数据。
现在给出最终答案
如果上面的内容还没有让你明白,那么,看看下面的数据:
- 如果您的用例只是获取数据并显示它,例如
Total number of courses from a class from API
。然后你可以使用 FutureBuilder
.
- 如果在您使用该应用程序时,数据每秒或每分钟更新一次,如
upcoming posts in a blog
或 increase comments on the blog
或 increase in likes on the blog
,那该怎么办?它以一定的间隔异步更新,在这种情况下 StreamBuilder
是最佳选择。
根据用例,您决定使用哪一个。他们两个都以自己的方式很好。请阅读以下文章,以获得清晰的信息:
大家好,我想从 Cloud firestore 中获取数据,但我不太确定在 Flutter 中使用哪个更有效。我应该使用 streambuilder 还是 futurebuilder。我有很多帖子都是红色的,但我不太明白其中的区别。谁能告诉我是否应该使用 streambuilder 或 futurebuilder 从 firestore
获取数据StreamBuilder
和 FutureBuilder
具有相同的行为:它们监听各自对象的变化。并在收到新值通知时触发新构建。
最终,不同之处在于他们如何聆听 async calls
。
FUTUREBUILDER
它只有一个响应。 flutter Future
的一个非常常见的用法是在 http
调用期间。你可以用 Future
做的是听它的状态,也就是说,当它完成时或在通过 Future
STREAMBuilder
Stream
另一方面是Iterators
,它可以同化不同的价值观,这些价值观会随着时间的推移而改变。通过使用 Stream
、,您将获得每个新值,如果它有一些错误或完成并显示成功消息
代表:
switch (snapshot.connectionState){
case ConnectionState.none: //do something
break;
case ConnectionState.waiting: //do something
break;
case ConnectionState.active: //do something
break;
case ConnectionState.done: //do somethin
break;
}
以上,每次都会 运行,如果来自异步数据的值发生变化,即使您正在使用该应用程序,也会更新该值。它不会停止。并显示您放入特定案例中的数据。
现在给出最终答案
如果上面的内容还没有让你明白,那么,看看下面的数据:
- 如果您的用例只是获取数据并显示它,例如
Total number of courses from a class from API
。然后你可以使用FutureBuilder
. - 如果在您使用该应用程序时,数据每秒或每分钟更新一次,如
upcoming posts in a blog
或increase comments on the blog
或increase in likes on the blog
,那该怎么办?它以一定的间隔异步更新,在这种情况下StreamBuilder
是最佳选择。
根据用例,您决定使用哪一个。他们两个都以自己的方式很好。请阅读以下文章,以获得清晰的信息: