打造ReactNative腳手架工程 - 目錄結構

前言

上節我們簡單的對工程初始化作了些補充,這節我們來思考下工程文件的劃分以及命名。可能我們平常開發中不會太多注重這些,但是對於有代碼潔癖的我來說這是不能容忍的,我們現在來簡單討論下。

  1. 什麼是文件夾?
  2. 文件夾以什麼命令合適?
  3. 文件夾多少層合適?

什麼是文件夾

文件夾,這個問題可能問得有點傻?可能大多數人回答的是,將許多不同的文件放在一起就形成了文件夾。其實這說法是錯誤的,關鍵就在於說是不同。我覺得許多文件放在一起正是因爲它們有相同的地方,也就是分門別類了。

文件夾以什麼命名合適

以什麼名字命名其實很重要!就那種你一看名字就能猜到這個文件夾是幹什麼用的,給人的感覺就很舒服,完全不用關注裏面的內容。到時候面對什麼模塊拆分、模塊重構,直接找到對應的文件夾就可以了。

文件夾多少層合適

我個人認爲文件夾層級不能超過5層。一般我都以3層爲主,如果超過5層的話,就意味着你的文件存在扁平化的必要了。就像我們的數據結構一樣,一旦層級過深的話在數據的查找、修改都會面臨許多的問題,所以扁平化很重要。

工程根目錄

├── .buckconfig
├── .flowconfig
├── .git
├── .gitattributes
├── .gitignore
├── .watchmanconfig
├── App.js
├── README.md
├── __tests__
├── android
├── app.json
├── babel.config.js
├── dist ①
├── index.js
├── ios
├── local-cli ②
├── metro.config.js
├── node_modulesa
├── package.json
├── private ③
├── src ④
└── yarn.lock

工程目錄結構還是相對簡單的,我只在初始化工程的基礎上增加了 4 個文件夾:

  • dist是公共文件的輸出位置,比如打包生成的 apk、ipa文件;

  • local-cli存放是工程使用的scripts文件,比如構建腳本、route 生成腳本等;

  • private文件夾有存放是個人的臨時文件,是被git忽略的;

  • src是最重要的文件夾,工程幾乎所有的代碼都存放在裏面,我們重點講解也是要此文件夾。

src 目錄

src/
├── components
│   ├── UI
│   └── widgets
├── configs
├── modules
├── navigators
├── redux
│   ├── actions
│   ├── reducers
│   └── store
├── resources
│   ├── i18n
│   ├── images
│   ├── svg
│   └── themes
├── screens
├── services
└── utilities

根據以往項目經驗,我將src目錄暫時建立了共 18 個子目錄:

  • components是工程中的基礎組件文件夾,這裏我又再新建了UIwidgets文件夾。UI指的是 App 所採用的統一風格的組件,比如ant designteaset等等.我是建議UI封裝一層此類組件,便於定製化;widgets指的是 App 使用的自定義組件,比如NavbarViewPager等等
  • configs是工程中配置文件夾
  • modules是工程中的模塊文件夾,主要對應的是自定義的原生模塊
  • navigators是工程中導航控制器文件夾,比如react-navigation
  • redux分爲actionsreducersstore,這是redux的經典分法,對於每個文件夾的意義的話建議是學習redux相關知識
  • resources是工程中的資源文件夾,這裏分爲i18nimagessvgthemes.i18n指多語言,也就是國際化;images指的就是圖片資源;svg是指圖標,非常建議 App 中大量使用 svg 圖標,輕量且加載快;themes即主題,建議 App 至少建立一套主題
  • screen是工程中頁面文件夾,App 當中的所有頁面都放在裏面
  • services是工程中服務類文件夾,比如有關網絡請求的 Api 的相關文件
  • utilities是工程中的工具類文件夾,比如TimeUtilStringUtil之類的文件

src文件夾大概也就這些,日後可能還會作出修改,大家僅供參考。

Native 目錄

Native當然指的就是AndroidIOS工程。由於使用RN開發,native工程的編碼相對很少。目前,我僅在native工程中新建modules文件夾即可,日後根據需要自行添加。

在這裏插入圖片描述
在這裏插入圖片描述

如圖所示,我分別在AndroidIOS工程下分別建立了modules文件夾,並且增加了AppModule.

總結

整個工程的目錄結構也就講解完了,也沒有什麼特別的,我只不過把以往項目中的目錄結構簡單整理了下而已。其實沒有固定的分法,要說的固定的話只有分層思想,切忌層與層之間耦合嚴重

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章