欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React文件名和目錄規(guī)范最佳實踐記錄(總結篇)

 更新時間:2022年05月12日 12:04:28   作者:荊棘Justin  
React在使用時非常靈活,如果沒有一個規(guī)范約束項目,在開發(fā)過程中會非常混亂,本文將介紹幾個優(yōu)秀的規(guī)范,介紹文件名和目錄前,需要先簡述一下幾種通用的類型,用來區(qū)分文件的功能,感興趣的朋友一起看看吧

React在使用時非常靈活,如果沒有一個規(guī)范約束項目,在開發(fā)過程中會非?;靵y,本文將介紹幾個優(yōu)秀的規(guī)范。

文件類型

介紹文件名和目錄前,需要先簡述一下幾種通用的類型,用來區(qū)分文件的功能。

  • component 組件文件
  • page 如果有路由(React Router、NextJS等),則有頁面文件
  • util 需要復用的工具函數
  • helper 一段特定邏輯,不是通用工具,可復用也可僅作為代碼拆分片段
  • hook 自定義React Hook
  • constant 定義常量,大寫+下劃線命名 CONSTANT_VALUE

處理index文件

在做組件或者頁面的時候,你可能會劃分組件,并把主組件用index.tsx導出。這樣做的時候有一個好處就是可以按照文件夾名引入,從結構上看是很清晰的。

但是事實上,在編輯器中會有多個index.tsx文件,開發(fā)時需要看文件所在的文件夾,非常難受。

我的解決方案是,你的主組件應該和原來一樣導出,index.ts 文件二次導出主組件。

你的 index.ts 應該這樣寫:

export * from './MainComponent';
export { default } from './MainComponent';

雖然把一個文件變成了兩個文件,但是有效地減少了開發(fā)時的心智負擔。

接下來規(guī)范中所有的 index.ts 都是這個作用

規(guī)范

類型文件夾

這應該是一個比較官方的規(guī)范,很多項目都在使用。

此處使用大駝峰命名組件(component)和頁面(page),其他文件通常用小駝峰

如果你有路由,那么此時component中的組件應為通用組件。

src/
├── components/
│   ├── MyHeader.tsx
│   └── MyFooter.tsx
├── pages/
│   ├── Home.tsx
│   ├── About.tsx
│   └── Widget/
│       ├── components/
│       │   ├── Tool.tsx
│       │   └── Option.tsx
│       ├── helpers/
│       │   └── setOptionStorage.ts
│       ├── Widget.tsx
│       └── index.ts
├── hooks/
│   └── useTheme.ts
├── utils/
│   └── getRamdomNumber.ts
└── constants.ts

這個規(guī)范在小項目中尚可實行。但是如果相對復雜的項目,由于文件夾層數多,會導致引入混亂。接下來會推薦特性分類的規(guī)范。

示例項目:Ant Design Pro

特性文件夾

特性文件夾分類很好地解決了層數過多的問題,增加平鋪的可能。并更直觀地展示了代碼邏輯,方便維護。

大駝峰命名

這種命名規(guī)范中,除了組件和頁面以外,所有的文件都需要添加類型后綴。
并且在一個特性中,可以將類型相同的函數放在一個文件內。
例如 Widget.helper.ts Widget.util.ts

如果是通用的或復用的代碼,都建議放到 common 文件夾統(tǒng)一管理,其余特性文件夾均大寫。

非組件或頁面的獨立的文件,請使用燒烤串命名(中劃線分割)

同一個特性的組件可以不另設 components 文件夾

src/
├── common/
│   ├── components/
│   │   ├── MyHeader.tsx
│   │   └── MyFooter.tsx
│   ├── utils/
│   │   └── get-random-number.util.ts
│   ├── hooks/
│   │   └── use-theme.hook.ts
│   └── constants.ts
├── Home/
│   └── Home.tsx
├── Widget/
│   ├── Tool.tsx
│   ├── Option.tsx
│   ├── Widget.helpers.ts
│   ├── Widget.utils.ts
│   ├── Widget.constants.ts
│   ├── Widget.tsx
│   └── index.ts
└── About/
    └── About.tsx

參考文章:Delightful React File/Directory Structure

燒烤串命名

這個實際上是參考了Angular規(guī)范,如果你對上面這個規(guī)范的大小寫命名強迫癥,不妨試試這個更嚴苛的規(guī)范。

  • 所有文件名、文件夾名都小寫,使用燒烤串命名(中劃線分割)。
  • 所有的文件都需要添加類型后綴。
  • 只有主要的頁面組件可以放在特性文件夾底層,其余文件都需要在特性文件夾中再設置類型文件夾。
  • 每個函數都應該是一個文件,不要把相同功能的函數放在一個文件內。
  • 移除 index.ts 導出,因為文件名變長且有類型后綴,引入方便判斷類型
src/
├── common/
│   ├── components/
│   │   ├── my-header.component.tsx
│   │   └── my-footer.component.tsx
│   ├── utils/
│   │   └── get-random-number.util.ts
│   ├── hooks/
│   │   └── use-theme.hook.ts
│   └── constants.ts
├── home/
│   └── home.page.tsx
├── widget/
│   ├── components/
│   │   ├── tool.component.tsx
│   │   └── option.component.tsx
│   ├── helpers/
│   │   └── set-option-storage.helper.ts
│   └── widget.page.tsx
└── about/
    └── about.page.tsx

示例項目

到此這篇關于幾種React文件名和目錄規(guī)范最佳實踐的文章就介紹到這了,更多相關React文件名和目錄實踐內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • hooks中useEffect()使用案例詳解

    hooks中useEffect()使用案例詳解

    這篇文章主要介紹了hooks中useEffect()使用總結,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • 如何用react優(yōu)雅的書寫CSS

    如何用react優(yōu)雅的書寫CSS

    這篇文章主要介紹了如何用react優(yōu)雅的書寫CSS,幫助大家更好的理解和學習使用react,感興趣的朋友可以了解下
    2021-04-04
  • 在React中如何優(yōu)雅的處理事件響應詳解

    在React中如何優(yōu)雅的處理事件響應詳解

    這篇文章主要給大家介紹了關于在React中如何優(yōu)雅處理事件響應的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-07-07
  • 詳解React?的數據流和生命周期

    詳解React?的數據流和生命周期

    這篇文章主要介紹了React?的數據流和生命周期,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • React實現圖片縮放的示例代碼

    React實現圖片縮放的示例代碼

    這篇文章主要為大家詳細介紹了如何使用React實現圖片縮放的功能,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解下
    2023-10-10
  • React實現Excel文件的導出與在線預覽功能

    React實現Excel文件的導出與在線預覽功能

    這篇文章主要為大家詳細介紹了如何利用?React?18?的強大功能,演示如何使用?React?18?編寫?Excel?文件的導出與在線預覽功能,需要的小伙伴可以參考下
    2023-12-12
  • React實現錨點跳轉組件附帶吸頂效果的示例代碼

    React實現錨點跳轉組件附帶吸頂效果的示例代碼

    這篇文章主要為大家詳細介紹了React如何實現移動端錨點跳轉組件附帶吸頂效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • React中實現防抖功能的兩種方式小結

    React中實現防抖功能的兩種方式小結

    這篇文章主要介紹了React中實現防抖功能的兩種方式小結,具有很好的 參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 使用useMutation和React Query發(fā)布數據demo

    使用useMutation和React Query發(fā)布數據demo

    這篇文章主要為大家介紹了使用useMutation和React Query發(fā)布數據demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 基于react框架使用的一些細節(jié)要點的思考

    基于react框架使用的一些細節(jié)要點的思考

    下面小編就為大家?guī)硪黄趓eact框架使用的一些細節(jié)要點的思考。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論