簡體   English   中英

Flutter:使用“兒童:<widget> ”或“兒童:”?</widget>

[英]Flutter: use "children: <Widget>" or "children:"?

在本文檔https://flutter.dev/docs/development/ui/layout#nesting-rows-and-columns他們使用

children:

但是在 Android Studio 和這個文檔https://api.flutter.dev/flutter/widgets/Row-class.ZAFC35FDC7308E28他們使用C

children: &ltWidget>

那么,有什么區別呢? 謝謝

它們都是真實的並且有效,但區別在於:

就像當你創建一個列表時,你可以創建如下列表

List<dynamic> list;
List<Widget> list;

當你傳遞<Widget>[]你告訴編譯器輸入列表類型是 Widget 並且所有列表子必須是 Widget 而不是別的

如果您使用children: <Widget>[]您的 IDE 可以知道列表類型,如果您添加除 Widget 之外的任何內容,則 IDE 在構建應用程序之前會拋出錯誤並浪費您的時間

在 dart 中,當您想設置 List 中的項目類型時:

例如:

var intList = <int>[1, 2, 3];

並且 var list 的類型變為List<int>

所以這里的children是一樣的。

在你的小部件列表之前設置<widget> ,告訴編譯器,這個列表有widget類型的項目。

第一個在運行時計算子項,這可能是對 UI 重建的額外影響百分比非常低的原因。 因為,它分配動態,並在運行時檢查我的小部件的類型!

另一方面,第二個是編譯類型,這意味着在運行時不需要額外的工作。 這消除了運行時 UI 重建的額外壓力!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM