2017-04-12 21 views
0

簡短的問題:我們是否應該將組件和容器放入單獨的文件夾中,還是應該將它們全部放在components文件夾中?我們是否需要將組件和容器劃分到React/Redux項目的單獨文件夾中?


詳細信息:我認爲這個標準是,如果它是不依賴於Redux的狀態(應用程序狀態)的組成部分,那麼它只是一個組成部分,將進入components文件夾。

如果它是一個綁定到Redux狀態的組件,那麼它被稱爲容器,應該進入containers文件夾。

但我也看到一些項目,不區分他們,只是把所有東西放到components文件夾。

對於我們是否應該將它們分開還是將它們放在一起有標準嗎?

+0

在我的廚房裏 - 我應該分別儲存胡椒和鹽還是放在一套? https://www.youtube.com/watch?v=52Vt8Fg3ZPY – elmeister

回答

0

一般來說,在使用或不使用redux的反應應用程序中,可以在'容器'文件夾中放置'網頁',如'家','用戶','設置'等,並將常見的UI元素,如'按鈕'組件文件夾中的'header','sidebar'。

如果你正在製作,比方說'user'頁面中的'user-avatar'組件比在容器下創建一個名爲'user'的文件夾並且放置'user-avatar'。

但是,當我們在討論中加入redux時,有一個有趣的提議叫做'redux-ducks',你應該檢查一下。

+0

我聽說的規則是組件是否綁定到應用程序狀態......如果綁定,然後將其稱爲容器並將其放入「容器」文件夾...它看起來類似於你所描述的:用戶,它是應用程序狀態,是容器,按鈕沒有綁定到任何應用程序狀態,因此只是組件並進入組件文件夾。那麼,它看起來像我們應該使用2個單獨的文件夾 –

+0

實際上沒有任何規則。它完全取決於你。無論哪種方式看起來更有組織地使用它。 –

0

你應該把它們放在單獨的文件夾中 - 我認爲如果你瞭解container是什麼和component是什麼之間的區別就更清楚了。這裏是一個good article但懵了最重要的區別:

的容器做數據抓取,然後呈現其相應的子組件。而已。

一般來說,區分組件與容器的主要好處是將用戶界面與數據提取分開。用戶界面可能會在您的應用程序的不同位置使用不同的數據,這可以讓您做到這一點。

如果你把它們都放在同一個文件夾中,那很好,但你怎麼知道你的哪些組件是UI和可重用的,哪些是用於數據獲取?當然,你可以打電話給所有容器,後綴爲Container,但這不應該是必需的。只有在你有一個與之配合的UI組件的時候,你纔會這樣做。

這也是一個很好的Github的問題談論containers vs components,他們也談一些其他的好處在他們分離出(路由等)

1

其實有2種方式來組織你的應用程序的代碼:

首先

動作/

CommandActions。JS

UserActions.js

組件/

Header.js

Sidebar.js

容器/

App.js

減速器/

index.js

bar.js

產品/

Product.js

ProductContainer.js

ProductActions.js

ProductList.js

ProductItem.js

ProductImage.js

productReducer.js

用戶/

user.js的

UserContainer.js

UserActions.js

UserProfile.js

UserAvatar.js

userReducer.js

第二結構應該在的情況下使用你的項目很複雜,含有大量的模塊。

相關問題