很多人說(shuō) Redux 代碼多,開(kāi)發(fā)效率低。其實(shí) Redux 是可以靈活使用以及拓展的,經(jīng)過(guò)充分定制的 Redux 其實(shí)寫(xiě)不了幾行代碼。今天先介紹一個(gè)很好用的 Redux 拓展—— redux-amrc。它可以幫助我們使用更少的樣板代碼發(fā)起異步 action。

低效的過(guò)去

一般情況下,為了清楚地記錄異步的過(guò)程,我們需要使用 三個(gè) action 來(lái)記錄狀態(tài)變化。通常,我們的代碼會(huì)是這樣:

const LOAD = 'redux-example/auth/LOAD';const LOAD_SUCCESS = 'redux-example/auth/LOAD_SUCCESS';const LOAD_FAIL = 'redux-example/auth/LOAD_FAIL';

寫(xiě)完這么多 action,還要在異步的前后發(fā)起它們,當(dāng)然這時(shí)你可能會(huì)用中間件,所以你的代碼最少也會(huì)是這樣:

export function load() {
  return {
    types: [LOAD, LOAD_SUCCESS, LOAD_FAIL],
    promise: (client) => client.get('/loadAuth')  };}

發(fā)起 action 后,還要編寫(xiě) reducer 來(lái)處理這些 action,以改變狀態(tài):

export default function reducer(state = initialState, action = {}) {
  switch (a
        
		

網(wǎng)友評(píng)論