react中可以在鉤子就能處理ajax非同步請求,為什麼還要在redux裡面用中間件去處理呢? 2者有什麼不同?
人生最曼妙的风景,竟是内心的淡定与从容!
對於小型的WebApp,狀態比較少,你可以只用ReactJS來實現,在事件回呼裡發起AJAX請求,請求成功後更新ReactJS 元件的state,從而更新視圖。
但是在較大規模的WebApp中,模組多,狀態多,這時就需要引入Redux來管理整個WebApp的狀態,ReactJS只用作View層以及根據用戶觸發的事件來dispatch相應的Action,不會有業務相關的邏輯。
這時Ajax請求就會放到Action裡處理,但是Redux預設只能分發Plain Object作為Action,加上redux-thunk中間件後,就可以分發函數作為一個Action,函數裡就可以做你想幹的事情,當然也可以發起Ajax請求來支援非同步事件了。
對於小型的WebApp,狀態比較少,你可以只用ReactJS來實現,在事件回呼裡發起AJAX請求,請求成功後更新ReactJS 元件的state,從而更新視圖。
但是在較大規模的WebApp中,模組多,狀態多,這時就需要引入Redux來管理整個WebApp的狀態,ReactJS只用作View層以及根據用戶觸發的事件來dispatch相應的Action,不會有業務相關的邏輯。
這時Ajax請求就會放到Action裡處理,但是Redux預設只能分發Plain Object作為Action,加上redux-thunk中間件後,就可以分發函數作為一個Action,函數裡就可以做你想幹的事情,當然也可以發起Ajax請求來支援非同步事件了。