1??Flutter includes a modern reactive framework and a 2 D rendering engine.
Flutter包括一個現(xiàn)代的反應框架和一個2D渲染引擎券膀。
2??窗口小部件Widget
Widget是Flutter應用程序的基礎(chǔ)。 Widget是對用戶界面的一部分的描述驯遇。
當Widget發(fā)生變化的時候芹彬,例如點擊一個按鈕部件去改變狀態(tài)
Widget會根據(jù)新狀態(tài)重建自身。
這節(jié)省了開發(fā)者的時間叉庐,因為UI可以被描述為狀態(tài)的函數(shù)舒帮。
當狀態(tài)發(fā)生變化時,我們不必編寫額外的代碼來單獨更新UI陡叠。
該框架創(chuàng)建一個差異來確定玩郊,差異變化需要去更新渲染樹
渲染引擎是自己APP的一部分,我們不需要將UI渲染代碼連接到本地平臺枉阵。
布局和渲染調(diào)用比平臺特定的調(diào)用發(fā)生的頻率要高得多译红,就像是移動設(shè)備的相機,通過在應用端進行所有渲染工作兴溜,flutter可以快速渲染并重新渲染你的Widget侦厚,允許豐富的動作和平滑的滾動。這個渲染引擎建在Skia拙徽,一個2D圖形渲染庫和Dart語言刨沦,如下圖
iOS與安卓平臺為我們提供了一個畫布,用于放置我們的小部件和渲染引擎,這是提前編譯本地代碼的好處,盡管他已經(jīng)為你的應用程序編寫了他們所需的設(shè)備插件
膘怕,比如像相機或者WiFi只要你的平臺去調(diào)用,flutter應用可以編譯并運行在您選擇的目標平臺上
3?? 熱重載
widget檢查器和代碼自動格式化器想诅,這會減輕你的開發(fā)壓力,當我們進行更改時岛心,flutter會立即提供有狀態(tài)的UI重新加載来破,這是在使用即時編譯器的時候,
4??架構(gòu)忘古,程序本身就是widget構(gòu)成的
分為有狀態(tài)以及無狀態(tài)
less無狀態(tài)的小部件是不可改變的徘禁,這意味著我們在編譯以及初始化他們的時候,他們所有的字段都必須是最終的存皂,我們可以在創(chuàng)建小部件的時候傳遞自定義的屬性晌坤,比如背景顏色逢艘,但是一旦創(chuàng)建,這些屬性無法進行改變骤菠,無狀態(tài)的小部件是不可以交互式的它改;
ful有狀態(tài)的小部件是可以改變的