歡迎您光臨本站 註冊首頁

Dart 2.3 發布,帶來構建 UI 新特性

←手機掃碼閱讀     admin @ 2019-05-09 , reply:0

Google I/O 2019 第二天,官方發布了 Dart 2.3 穩定版本

此版本針對構建用戶界面進行了優化,改善了開發者在開發 UI 時的編碼體驗,為開發 Flutter UI 提供了新的工具支持,同時還提供了兩個新的網站:dart.dev 與 pub.dev。

用於構建用戶界面的新語言特性

在客戶端開發方面,Dart 與 Flutter 團隊之間長期合作的項目之一就是使用 Dart 捕獲用戶界面代碼,而不需要標記語言。開發團隊認為對行為和布局使用單一語言具有很大的好處,包括減少上下文切換、不必學習兩種語言,並在構建 UI 時允許通用編程語言的所有抽象功能。

在 Dart 最近幾個版本中進行了一些改進,例如簡化構建 widget 的代碼,添加自動的 int-to-double 轉換以及添加 set literals。Dart 2.3 中,進一步帶來了三個用於描述 UI 的新特性:基於列表、條件與重複。

可以將 UI 視為 widget 節點的樹,一些節點包含 widget 列表,例如可滾動元素的列表。通常這些列表是從其它列表構建的。為此,添加了一個新的 spread operator 擴展運算符特性,用於將元素從一個列表解壓到另一個列表。在下面的示例中,buildMainElements() 返回一個 widget 列表,然後使用擴展運算符 ... 將其解壓到周圍列表中:

Widget build(BuildContext context) {
  return Column(children: [
    Header(),
    ...buildMainElements(),
    Footer(),
  ]);
}

另一個常見的 UI 任務是根據條件包含特定元素。例如,開發者可能希望在所有頁面上都帶有「下一步」按鈕,當然條件是最後一頁不需要這個按鈕。在 Dart 2.3 中,可以使用以下 collection if 執行此操作:

Widget build(BuildContext context) {
  return Column(children: [
    Text(mainText),
    if (page != pages.last)
      FlatButton(child: Text('Next')),
  ]);
}

最後,UI 經常從其它重複元素構建重複元素,可以使用新的 collection for 特性來描述這一點:

Widget build(BuildContext context) {
  return Column(children: [
    Text(mainText),
    for (var section in sections)
      HeadingAction(section.heading),
  ]);
}

這三個新特性是語言特性,而不是標記命令,因此它們是完全可組合的,可以在處理集合的任何上下文中使用。這些特性包含在 Flutter 1.5 版本中,可在 Dart 2.3 版本中找到。

此外還添加了新的 lint,可以在靜態分析中配置這些 lint 以強制使用新的 spread、collection if 和 features for 特性。

IDE 和編輯器功能

配合 Dart 2.3 的 UI 特性改進,此版本還為 IDE 支持添加了新的 UI Guides 功能。UI Guides 是在 UI 代碼中繪製的水平和垂直線,使得更容易看到 Flutter UI build() 方法的樹結構。以下是一個計算器應用示例,其中 UI Guides 清楚地表示了 UI 是從包含多個 KeyRows 的擴展列構建的,每個 KeyRows 包含 NumberKeys。

UI Guides 在 IntelliJ IDEA 35.2 和 Android Studio 插件中提供。今後 VS Code 中也有望提供類似支持。

另一方面,開發者在使用 API 時經常會使用代碼自動補全功能,這一功能在補全已導入的庫中的 API 效果很好,但對於還未導入的庫則不起作用。新版本 IDE 現在彌補了這一不足,開發者現成可以在任何前綴上調用代碼補全,並且將看到當前包中所有 API 的完整性,它直接依賴的包以及 SDK。如果補全的是尚未導入的庫中的代碼,則 IDE 會為自動添加導入語句。

新的 Dart 與 Pub 網站

開發團隊為 Dart 平台構建一個新網站:dart.dev,https://dart.dev

該網站提供了一個全新的登陸頁面,專註於解釋 Dart 平台的核心優勢,同時更新了文檔頁面,以獲得更好的導航和更具視覺吸引力。最後,對所有內容進行了大量重組,以使其更容易被發現,並為以前缺少的核心內容添加了新頁面。此外,更新了 Pub 包網站,並使用了方便的新 URL:pub.dev


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/106546/dart-2-3-released
Dart 2.3 發布,帶來構建 UI 新特性已經有208次圍觀

http://coctec.com/news/all/show-post-205177.html