剛學習了redux不久,剛好看到一個優秀的react項目github-explorer,該應用使用了RxJS去處理數據流,爲了鞏固學習便有了使用redux改寫的想法。html
應用中使用了自定義箇中間件api,方便編寫異步的 action creators。異步action能夠定義成如下方式git
export function loadUserProfileRepos (username) { return { types: [USER_PROFILE_REPOS_REQUEST, USER_PROFILE_REPOS_RECEIVED, USER_PROFILE_REPOS_FAILURE], callAPI: () => api('fechURL`) } }
中間件接收到這種形式的action,會處理異步請求並在適當的時候dispatchtypes
中的各項。github
應用的拉取數據的進度條方面,負責拉取狀態reducer在接收到諸如xx_REQUEST
和xx_RECEIVED
的actions後,會更新表示進度條狀態的數據。npm
由於只是鞏固redux學習,因此原應用的部分動畫效果沒有加上。redux
除了數據流部分,應用大部分都是照搬了原應用。api
使用了redux後加上的依賴react-router
redux異步
react-router-redux學習
開發
npm install npm run start
打包
npm run dist