介紹
下面是本人自己寫Flutter項目用的目錄結(jié)構(gòu)。因為公司還沒有使用Flutter。純屬個人項目的目錄結(jié)構(gòu)。所以目的是希望有大型Flutter項目經(jīng)驗的前輩幫忙指出各個地方的不足之處。
界面

- 箭頭4:所有界面都在此目錄下創(chuàng)建一個對應(yīng)的文件夾。以首頁home的第一個tab欄為例(home_tab1)
- 箭頭5:為一個頁面。箭頭5指向文件夾根據(jù)名字可知是首頁tab欄1的頁面。內(nèi)部必有一個dart文件(箭頭7)繼承自統(tǒng)一操作生命周期的父Widget(箭頭2)。和只有在該頁面中才使用的組件組成的一個文件夾widget(箭頭6)
- 箭頭6:是當(dāng)前頁面拆分出來的一個個小組件,只在當(dāng)前界面使用。不是公共的,當(dāng)需要公共的組件則需要放入箭頭3文件夾中。
- 箭頭3:存放公共組件,每個組件以Comm開頭和頁面內(nèi)組件(箭頭6)區(qū)分開。
- 箭頭1:存放不是單獨(dú)頁面僅有的Widget
- 箭頭2:定義頁面的公共BaseStatefulWidget、公共的BaseState<BaseStatefulWidget>和公共的生命周期事件處理器。
所有頁面都必須繼承自該BaseStatefulWidget,且內(nèi)部的State必須繼承自BaseState<BaseStatefulWidget>。
父類BaseState中自動使用繼承自WidgetsBindingObserver的LifecycleEventHandler。 - 箭頭7:表示一個頁面的入口文件(路由指向的都是這個位置的Widget)。
網(wǎng)絡(luò)請求
網(wǎng)絡(luò)請求這部分,用的是在空閑的時候封裝的一套接口請求框架。為了統(tǒng)一各種服務(wù)器報文的json數(shù)據(jù)格式。

-
將網(wǎng)絡(luò)請求初始化代碼寫在config/http_init中,并在main.dart的啟動方法中調(diào)用初始化。
-
請求接口:
-
響應(yīng)實體類
路由
-
通過一個路由工具類通過Navigator在各個路由之間跳轉(zhuǎn)
-
在mian.dart配置路由
- 路由跳轉(zhuǎn)
UtilRouter.pushName(context, UtilRouter.login); //添加后,跳轉(zhuǎn)登錄界面
... 等等
常量
-
公共顏色、尺度、字符串、webveiw打開網(wǎng)頁的一系列常量的定義。
插件
-
插件初始化:在config/*下編寫各類插件需要的初始化操作,并且在main.dart中調(diào)用。
其他的大多數(shù)個人封裝的一些平臺插件了,比如:
- 網(wǎng)頁離線包:由于開發(fā)原生時寫了支持離線包的webview,所以寫成了flutter插件。
- 權(quán)限請求:好像有出來權(quán)限請求框架,還沒來得及測試。就直接用來自己的。
- 拍照讀取相冊:功能比較簡單。看了下社區(qū)的這個后,后面每次就先看看社區(qū)有沒有比較好的,而不是自己寫了(個人項目)。
- ...






