IngramChen 積分 0

side effect 是指 ajax call 或是 persist 到 local storage 之類的。 ajax code 是放在 action,persist 大概放 store 吧 ? 。

剩下可以 pure 處理的才可放在 reducer (大概是 model 之類的吧?)

不知有沒理解錯

這是文章的子討論串,你可以回到上層查看所有討論和文章
siuying 積分 2

Redux 在文件 Async Actions1 中有說到,這時候通常用 redux trunk middleware 寫一種叫 Action Creator 的東西。儲存理應放在 Store 。

不喜歡 Redux 的地方就是這種造一大堆新的 abstraction 出來,而且也不是唯一的做法,新手不知道對不對。

popcorny 積分 2 編輯於

天啊!! 這東西好複雜,看了好久才知道他在說什麼。

一般來說store.dispatch應該只吃Action1 type,但是透過middleware可以包裝此dispatch變成可以吃Thunk這個型態,此型態的定義在 這裡2 ,簡單講就是一個

function(dispatch, getState)

這種型態的function。透過closure的方式,可以讓在async的地方去call這兩個redux會用到的function,來達到ajax complete的時候,去sync的呼叫dispatch來通知complete。

這個可能對於用redux的人可能會知其然但不知所以然吧,如果沒有搞懂thunk的機制,可能覺得莫名其妙吧。我同意你說的,這些abstraction不太必要,只是讓一且覺得很神奇而已,對於新手入門門檻太高了。