一阀参、說明
看到很多 Flutter 構(gòu)建 UI 時會比較多用到 const栋艳,為什么不直接創(chuàng)建實例恢准,而要在前端加一個 const 呢 ?
child: const Text('加 const');
VS
child: Text('不加 const');
二秉扑、盡量用 const 的理由
當我們調(diào)用 setState() 后昆码,F(xiàn)lutter 會調(diào)用 build 方法,并且 rebuild 其中的每一個組件,避免全部重新構(gòu)建的方法就是用 const赋咽。
如果一個組件更新頻繁(比如動畫),用 const 后可以減少垃圾回收吨娜。
三脓匿、示例
class _MyWidgetState extends State<MyWidget> {
String title = "Title";
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Column(
children: <Widget>[
const Text("Text 1"),
const Padding(
padding: const EdgeInsets.all(8.0),
child: const Text("Another Text widget"),
),
const Text("Text 3"),
],
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
onPressed: () {
setState(() => title = 'New Title');
},
),
);
}
}
當你點擊 FloatingActionButton 調(diào)用 setState 后,所有 const 定義的組件都不會重新構(gòu)建