国产亚洲欧美人成在线,免费视频爱爱太爽了无码,日本免费一区二区三区高清视频 ,国产真实伦对白精彩视频

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

flutter入坑指南(二)

發(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ā)


本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://jstctz.cn/17538.html
相關(guān)APP開發(fā)
 八年  行業(yè)經(jīng)驗(yàn)

多一份參考,總有益處

聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費(fèi)獲得網(wǎng)站建設(shè)方案及報(bào)價(jià)

咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

業(yè)務(wù)熱線:余經(jīng)理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.