2017-06-01 35 views
1

在我以前的項目中,我通常只有一個connect(mapStateToProps, mapDispatchToProps)(App)。但是,當我今天檢查官方example時,我發現每個容器幾乎有一個connect()在Redux中,每個容器都有一個連接?

有多個好處connect()

+0

連接功能只允許組件訪問位於商店中的數據。它是商店(模型)和組件(視圖)之間需要來自商店的一些數據的有點控制器。此功能可以「插入」存儲儘可能多的組件。 –

回答

5

想象一下Redux版本的Stack Overflow的Q & A頁面。你會有很多組件:問題及其投票,答案和他們的投票,Markdown編輯器的額外答案,頂部的個人資料鏈接以及右側的相關和網絡問題。相應的Redux商店可以爲活動問題,活動答案,相關問題,用戶配置文件和Markdown編輯器提供子對象。

你可以使用一個單一的頂級connect,正如你所說的,但connect荷蘭國際集團的每個組件單獨提供性能封裝

  • 單個頂級connect指頂當任何Redux商店值發生變化時,級別App會被重新渲染,然後它必須將這些道具傳遞給它的每個子組件(它們必須重新渲染或檢查shouldComponentUpdate)。如果您單獨使用每個組件,則例如在Markdown編輯器中鍵入內容並更新商店的編輯器切片時,只有Markdown編輯器會重新渲染。
  • 單個頂級connect意味着頂級App需要知道它下面的所有內容,以便它可以傳遞所有必需的道具和事件本身。個人connect提供封裝:配置文件欄可以爲需要的道具和動作創建者提供connect,而更高級的組件不需要知道或關心細節。
相關問題