Flutter学习笔记5 (网络与异步)

继续学习Flutter。

几天下来,最大的感受是,Flutter确实是一个非常优秀的新技术,不仅有趣,而且值得你花时间研究学习,前景应该不错。
之前了解了Flutter的基本用法、Widget、Layout,这些都是UI界面。下一步当然就是连接后台的网络和异步调用了。

这篇官方文章写得非常不错:https://flutter.io/flutter-for-ios/
帮助iOS的程序员更快的去理解Flutter, Dart语言。

1. 异步调用

Dart是一个单线程语言,但是它仍然可以异步地去处理任务。
相当于iOS里只有一个main线程。Dart提供了一个async/await的机制,来运行网络代码,但是不阻塞UI。

loadData() async {
  String dataURL = "https://jsonplaceholder.typicode.com/posts";
  http.Response response = await http.get(dataURL);
  setState(() {
    widgets = json.decode(response.body);
  });
}

网络代码执行完后,调用setState()刷新。就是这么简单。
另外,如果想显示一个加载提示的话,也可以显示一个ProgressIndicator的Widget。

2.Layout

在iOS里对于一个list,一般就是通过UITableView或者CollectionView来显示。
在Flutter里,则是ListView,或者GridView(显示多列的List)。
iOS的UITableViewController有很多非常复杂的方法,需要去告诉系统如何handle这些数据。
在Flutter里的ListView,只需要把list数据作为参数传给Widget即可,其它全部会帮你搞定,就是这么简单。

总结,可以明显看到Flutter确实很简单,很强大。非常期待正式版本尽早发布。

猜你喜欢

转载自blog.csdn.net/starshus/article/details/81228491