2016-09-20 28 views
2

這不是一個React的具體問題。我正在考慮在Aurelia/Angularjs中實施Flux。爲什麼我們需要Flux中的調度員?

在閱讀流量時,我並不確信調度員步驟的必要性。爲什麼組件不能直接調用商店來更新和檢索數據?這種方法有什麼問題嗎?

例如:如果我有一個CarStore可以創建新汽車,更新汽車並獲取汽車列表(只是CRUD API上的一個薄層),我應該能夠通過直接調用來檢索/更新列表來自car-grid組件的商店。由於商店是單身人士,每當列表更新時,car-grid應自動獲得新項目。在這種情況下使用調度程序有什麼好處?

回答

0

你可以看到here調度員爲什麼重要(查看爲什麼我們需要調度員)。我看到它的方式,這個想法基本上能夠以同步的方式訪問各種商店(一個回調在另一個商店被調用之前完成)。你可以這樣做,這要歸功於waitFor方法,其中允許您等待商店完成處理動作(或更多棕褐色)。有一個很好的例子in the docs。例如,您的應用程序可能會增長,而不是隻有該CarStore,您有另一個應用程序的更新取決於CarStore更新。

+0

爲什麼不能在組件中管理該依賴關係?例如,如果您想更新多個互相依賴的商店,則可以使用承諾。 – Sayem

+0

例如,我們需要將它從'WishlistStore'中刪除,當它被添加到'CartStore'時。從你的組件中,你可以添加一輛車到'CartStore',它返回一個承諾,當它成功時更新'WishlistStore'。 – Sayem

+1

我想你可以這樣做,但Flux爲您提供調度程序和函數,使它更容易。在極端情況下,您可以使用純JavaScript來做所有事情,框架只是簡單地爲您提供一些工具和模式,以使其更易於組織和/或更好地組織。 –