国产亚洲欧美人成在线,免费视频爱爱太爽了无码,日本免费一区二区三区高清视频 ,国产真实伦对白精彩视频

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

Flutter 案例學(xué)習(xí)之:網(wǎng)絡(luò)請(qǐng)求

發(fā)表日期:2018-09 文章編輯:小燈 瀏覽次數(shù):1643

GitHub:https://github.com/happy-python/flutter_demos/tree/master/http_demo

介紹

Flutter 應(yīng)用程序使用 Dart 語言編寫(最初來自 Google,現(xiàn)在是 ECMA標(biāo)準(zhǔn))。Dart 與其他現(xiàn)代語言(如 Kotlin 和 Swift)具有許多相同的功能,可以轉(zhuǎn)換為 JavaScript 代碼。

作為一個(gè)跨平臺(tái)框架,Flutter 最接近 React Native,允許響應(yīng)式和聲明式的編程風(fēng)格。然而,與 React Native 不同,Flutter 不需要使用 Javascript 橋接,這可以改善應(yīng)用啟動(dòng)時(shí)間和整體性能。Dart 通過使用Ahead-Of-TimeAOT 編譯來實(shí)現(xiàn)這一點(diǎn)。

Dart 的另一個(gè)獨(dú)特方面是它也可以使用 Just-In-TimeJIT 編譯。使用 JIT 編譯通過熱重新加載(hot reload)功能在開發(fā)期間刷新 UI 而無需全新構(gòu)建,從而改進(jìn)了開發(fā)工作流程。

Flutter 框架主要圍繞窗口小部件(widgets)構(gòu)建。在 Flutter 中,窗口小部件不僅用于應(yīng)用程序的視圖,還用于整個(gè)屏幕,甚至用于應(yīng)用程序本身。

除了跨平臺(tái)的 iOS 和 Android 開發(fā)之外,學(xué)習(xí) Flutter 還將為您開發(fā)Fuchsia 平臺(tái)提供一個(gè)良好的開端,該平臺(tái)目前是 Google 開發(fā)的實(shí)驗(yàn)性操作系統(tǒng)。許多人認(rèn)為它是未來 Android 的潛在替代品。

在本教程中,您將構(gòu)建一個(gè) Flutter 應(yīng)用程序,該應(yīng)用程序查詢 GitHub API,并在可滾動(dòng)列表中顯示團(tuán)隊(duì)成員信息:

窗口小部件

幾乎 Flutter 應(yīng)用程序的每個(gè)元素都是一個(gè)小部件。窗口小部件被設(shè)計(jì)為不可變的,因?yàn)槭褂貌豢勺兇翱谛〔考兄诒3謶?yīng)用程序 UI 輕量級(jí)。

您將使用兩種基本類型的小部件:

  • StatelessWidget:無狀態(tài),僅依賴于自己的配置信息的小部件,例如圖像視圖中的靜態(tài)圖像。
  • StatefulWidget:有狀態(tài),需要維護(hù)動(dòng)態(tài)信息的小部件,并通過與 State 對(duì)象交互來實(shí)現(xiàn)。

無狀態(tài)和有狀態(tài)窗口小部件都在 Flutter 應(yīng)用程序中重繪每一幀,不同之處在于有狀態(tài)窗口小部件將其配置委托給 State 對(duì)象。

網(wǎng)絡(luò)請(qǐng)求

現(xiàn)在將使用框架中可用的包進(jìn)行 HTTP 網(wǎng)絡(luò)調(diào)用,并將生成的響應(yīng) JSON 解析為 Dart 對(duì)象。

Dart 應(yīng)用程序是單線程的,但 Dart 支持使用 async / await 模式在其他線程上運(yùn)行異步代碼以便不阻止 UI 線程。

import 'package:http/http.dart' as http; import 'dart:convert';_loadData() async { String dataURL = "https://api.github.com/orgs/raywenderlich/members"; http.Response response = await http.get(dataURL); setState(() { // json.decode 簡(jiǎn)寫形式 final members = jsonDecode(response.body); for (var member in members) { _members.add(Member(member["login"], member["avatar_url"])); } }); } 
ListView
ListView.separated( itemCount: _members.length, itemBuilder: (BuildContext context, int index) => _buildRow(index), separatorBuilder: (BuildContext context, int index) => Divider(), ) 

原文鏈接:https://www.raywenderlich.com/116-getting-started-with-flutter


本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://jstctz.cn/18025.html
相關(guān)APP開發(fā)