優化模塊 優化redux的使用過程react
npm install redux react-redux
經過react-redux 提供的provider提供器 將全局狀態對象掛載到根元素的上下文上npm
import Provider from 'react-redux'
import store from './store/store.js'
...
<Provider store = {store}>
<App></App>
</Provider>
...
在組件中使用全局狀態值經過react-redux 提供的connect 從跟組件的上下文上獲取store對象,經過高階組件將得到到的store傳給目標組件的propsredux
import {connect} from 'react-redux'
class Son1 ... {}
connect(state=>state)(Son1)
組件中修改全局狀態值 不須要寫組件監聽組件 -> actionCreator -> redcuer ->組件(監聽更新)promise
組件的裏的監聽不用寫了 網絡
actionCreator 默認作兩個事情1.建立action 2.經過dispath 發送action actionCreator 使用插件以後只要 建立action app
在組件裏發送異步
解決方式經過異步中間件 redux-thunk redux-sage redux-promise ....ide
安裝異步插件 npm install redux-thunk 函數
在store.js 引入並使用優化
import {createStore,applyMiddleware} from 'redux'
import thunk from 'redux-thunk' //解決異步的插件
import reducer from './reducer'
export default createStore(reducer,applyMiddleware(thunk))
除了actionCreatore 須要修改以外 其餘的都不用動 a. 若是是同步的方法也不須要動 返回actionb. 若是action裏有異步 返回一個函數 函數能接受dispath 在函數內部 作網絡請求 成功以後經過dispath手動的發送