介紹:
Flutter 是一門基于dart的跨平臺開發(fā)語言/工具捡絮,可實現(xiàn) web、pc战坤、android曙强、ios四端,細節(jié)可去官網(wǎng)查看途茫,本文主要聊聊作者對移動端(android碟嘴、ios)見解,希望對Flutter感興趣的碼友一點啟發(fā)囊卜。
當下跨平臺開發(fā)主要有三種形式:H5+原生(小程序)娜扇、JavaScript+原生渲染(React Native)、自繪UI+原生(Flutter)由此不難看出真正性能上能與原生相抗衡的只有Flutter“自繪UI”劃重點栅组,不僅如此Flutter采用套殼子的形式雀瓢,上手后開發(fā)速度可追著UI要設(shè)計圖??,很舒適笑窜。
官方詳細講解https://book.flutterchina.club/chapter2/state_manage.html
Flutter做移動端開發(fā)應(yīng)該從UI渲染致燥、狀態(tài)管理、眾機型UI適配排截、處作為起點
A-》Ui渲染:
再講Ui渲染前先介紹:
->StateLessWidget :繼承自widget的靜態(tài)widget布局 無state
->StateFulWidget :繼承自widget的動態(tài)態(tài)widget布局 有state嫌蚤,可setstate() 手動構(gòu)建Element
->Widget樹 : 四棵樹之一 辐益,主體樹,生成Element樹
->Element樹 :四棵樹之一 脱吱,與Widget樹一一對應(yīng)智政,起到了Widget樹與Render樹中間人的作用,生成Render樹
->Render樹 :四棵樹之一 箱蝠,渲染樹续捂,顧名思義Ui渲染在此,生成Layer樹
->Layer樹 :四棵樹之一 宦搬,顯示樹牙瓢,將渲染后的Ui展示于前端
UI渲染的過程是監(jiān)測樹中節(jié)點的state狀態(tài)是否發(fā)生變化來判斷是否build,在build時對比oldWidget與newWidget的runTimeType和key是否相同间校,相同則更新widget中對應(yīng)Ui的element配置矾克,不同則重新建立element。
其概念原理是 監(jiān)測widget樹一一對應(yīng)的element樹節(jié)點的state狀態(tài)來通知render樹的renderObject渲染UI至layer樹實現(xiàn)前端顯示憔足。
B-》狀態(tài)管理:
什么是狀態(tài)管理呢胁附,說白了就是對state做管理,原始的setstate()整個樹做build滓彰,其中也包含一些并不需要build的Ui(element配置信息)控妻,所以引出狀態(tài)管理機制,狀態(tài)管理可做到指定UI更新揭绑,可以大大減少性能損耗弓候,在Flutter中mvvm、響應(yīng)式編程便是由此實現(xiàn)洗做。
有兩個成熟插件可以使用
一弓叛、是官方推薦的provider,在我之前的文章中有提過(http://www.reibang.com/p/880ba9a0f669)這里我們主要介紹的
二诚纸、是我個人很喜歡的GetX,后面我會著重講講
C-》路由管理:
所謂路由管理撰筷,就是管理頁面之間如何跳轉(zhuǎn),通常也可被稱為導(dǎo)航管理畦徘,由于每一次的push都寫在每一處方法里毕籽,雜亂無章,所以將全局頁面跳轉(zhuǎn)統(tǒng)一于一處就顯得尤為重要井辆,GetX最大的亮點就是狀態(tài)管理和路由管理真的很棒关筒,碼友們期待我后期出的GetX篇吧??
D-》網(wǎng)絡(luò)請求:
尋找一個適合自己的網(wǎng)絡(luò)請求插件封裝,主推dio杯缺,攔截器和cookie實現(xiàn)效果很佳蒸播,本文有詳細介紹與代碼示例:http://www.reibang.com/p/cc12507ec9b6
本篇是flutter開發(fā)學(xué)習(xí)的開篇,后期會逐步更新 Flutter完成項目所能用到的相關(guān)功能實現(xiàn)講解
歡迎加QQ群討論:531134701