為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2018-09 文章編輯:小燈 瀏覽次數(shù):2183
擼完hello world 頓時世界都清凈了,瞬時感覺已經(jīng)精通flutter的安裝了。
言歸正傳,在整個flutter框架里萬事萬物都是widget,那就從StatefulWidget 和?StatelessWidget入手,兩者之間到底有什么差異,以及在什么場景下如何使用。
在flutter中所有控件都是以樹狀結(jié)構(gòu)進(jìn)行渲染,在main方法中會初始化頂端節(jié)點(diǎn)并裝載,該節(jié)點(diǎn)會成為我們app的根結(jié)點(diǎn),后續(xù)的節(jié)點(diǎn)將被嵌套或者直接掛載到該節(jié)點(diǎn)下,Widget初始化的時候會調(diào)用Widget.createElement 方法生成Element,緊接著框架會調(diào)用mount方法將element插入到父級節(jié)點(diǎn)下,mount方法主要是負(fù)責(zé)填充子節(jié)點(diǎn)或者子樹同時還會調(diào)用attachRenderObject方法來渲染需要進(jìn)行渲染的renderObject。渲染成功后父節(jié)點(diǎn)會根據(jù)state的狀態(tài)決定是否修改子節(jié)點(diǎn)或者子樹,如果需要修改則會調(diào)用update方法,當(dāng)然如果子樹中有控件調(diào)用了deactivateChild 父節(jié)點(diǎn)將會移除該子樹或節(jié)點(diǎn),這時會出發(fā)系統(tǒng)的deactive方法,當(dāng)新的控件被修改后同樣會出發(fā)系統(tǒng)的activate方法,如果控件的轉(zhuǎn)臺為inactive則會調(diào)用unmount方法
控件渲染的過程中同步讀取State的數(shù)據(jù),在控件的整個生命周期中可能會被多次改變,如果想要State的數(shù)據(jù)變化能夠被控件知曉需要調(diào)用State.setState方法
StatefullWidget使用場景:UI需要動態(tài)改變或者要依賴內(nèi)部的時鐘狀態(tài)或者要依賴其他的系統(tǒng)狀態(tài)才能完成控件的渲染
StatelessWidget適用于只需要依賴控件的配置信息就能完成控件的渲染
StatelessWidget->build()方法是在widget被插入到控件樹或者依賴的其他控件發(fā)生變化的時候才會被調(diào)用。
StatefullWidget沒有build方法,在框架設(shè)計(jì)的時候build方法被放到了State中,有多種情況可以出發(fā)build方法:
?1.initState 方法被調(diào)用后會觸發(fā)?
2.didUpdateWidget被執(zhí)行后會觸發(fā)?
3.依賴的子樹的State發(fā)生改變同樣會觸發(fā)
?4.deactivate方法被調(diào)用后重新將控件插入到控件樹的其他位置也會被觸發(fā)
日期:2018-10 瀏覽次數(shù):7293
日期:2018-12 瀏覽次數(shù):4359
日期:2018-07 瀏覽次數(shù):4902
日期:2018-12 瀏覽次數(shù):4203
日期:2018-09 瀏覽次數(shù):5528
日期:2018-12 瀏覽次數(shù):9953
日期:2018-11 瀏覽次數(shù):4843
日期:2018-07 瀏覽次數(shù):4605
日期:2018-05 瀏覽次數(shù):4884
日期:2018-12 瀏覽次數(shù):4345
日期:2018-10 瀏覽次數(shù):5164
日期:2018-12 瀏覽次數(shù):6243
日期:2018-11 瀏覽次數(shù):4496
日期:2018-08 瀏覽次數(shù):4619
日期:2018-11 瀏覽次數(shù):12670
日期:2018-09 瀏覽次數(shù):5606
日期:2018-12 瀏覽次數(shù):4861
日期:2018-10 瀏覽次數(shù):4218
日期:2018-11 瀏覽次數(shù):4552
日期:2018-12 瀏覽次數(shù):6092
日期:2018-06 瀏覽次數(shù):4033
日期:2018-08 瀏覽次數(shù):5469
日期:2018-10 瀏覽次數(shù):4481
日期:2018-12 瀏覽次數(shù):4564
日期:2018-07 瀏覽次數(shù):4383
日期:2018-12 瀏覽次數(shù):4531
日期:2018-06 瀏覽次數(shù):4416
日期:2018-11 瀏覽次數(shù):4399
日期:2018-12 瀏覽次數(shù):4280
日期:2018-12 瀏覽次數(shù):5311
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.