網(wǎng)站首頁 編程語言 正文
正文
你曾否意識到你需要拆分一個大型的構(gòu)建方法,但又覺得這聽起來很費勁?
試試StatefulBuilder 以最小的代價獲得一個個單獨的小部件的所有性能
想象一下,這樣的一個小部件,有一個可以切換單一標志的便宜的子部件,然后是一個昂貴的小部件。
除非絕對必要,否則你不會想要重建它
bool isExpanded = false;
Widget build(context) {
return Column(
children: [
InexpendsiveStateful(
isExpanded: isExpanded,
onTap: (bool newValue) => setState(() => isExpanded = val),
),
ExpensiveStateless(),
]
);
}
性能問題解決
為了解決性能問題,用一個StatefulBuilder來包裝Stateful部分,StatefulBuilder與builder類似,除了傳遞給builder的那個額外的setState參數(shù)
bool isExpanded = falise;
Widger build(context) {
return Column(
children: [
StatefulBuilder(
builder: (ctx, setState) =>
InexpensiveStateful(
isExpanded: isExpanded,
onTap: (bool newValue) => setState(() => isExpanded = val),
)
),
ExpensiveStateless(),
]
);
}
為了善加利用這個嶄新的小部件,調(diào)用其特殊的setState函數(shù)來重建你的應(yīng)用程序的那一部分,當(dāng)那個onTap方法被調(diào)用setState時,它就是你的StatefulBuilder的setState范圍
這意味著你的ExpensiveStateless小部件仍然沒有被觸動
StatefulBuilder是一個很好的方法,可以從一個單獨的小部件中獲得所有的性能提升,而不需要做大部分的工作。
如果想了解有關(guān)# StatefulBuilder的內(nèi)容,或者關(guān)于Flutter的其他功能,請訪問pub.dev
原文鏈接:https://juejin.cn/post/7169066463272108069
相關(guān)推薦
- 2022-08-19 利用Python實現(xiàn)簡單的驗證碼處理_python
- 2023-01-23 React中props使用介紹_React
- 2022-04-23 排序會了遞歸,不學(xué)非遞歸太可惜了
- 2023-11-17 深度學(xué)習(xí)中分布式訓(xùn)練的現(xiàn)狀及未來
- 2023-10-14 SQL Server 執(zhí)行sql報錯'sys.sp_OACreate' 的訪問
- 2022-03-27 Redis?使用?List?實現(xiàn)消息隊列的優(yōu)缺點_Redis
- 2022-04-17 小程序 底部懸浮的輸入框聚焦的時候 鍵盤緊貼輸入框
- 2022-11-18 React生命周期函數(shù)深入全面介紹_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支