[英]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: <Widget>
那么,有什么區別呢? 謝謝
它們都是真實的並且有效,但區別在於:
就像當你創建一個列表時,你可以創建如下列表
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.