index.js
import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { Map } from "immutable";
const sagaMiddleware = createSagaMiddleware()
import reducer from './reducer'
import sagas from './sagas'
const store = createStore(
reducer,
Map(),
applyMiddleware(sagaMiddleware)
)
sagaMiddleware.run(sagas)
export default store
reducer,js
// import { combineReducers } from 'redux'
import { combineReducers } from 'redux-immutable'
import { reducer as home } from '../pages/home/'
export default combineReducers({
home
})
saga,js
import { takeEvery } from 'redux-saga/effects'
import { sagas as cookbookSagas } from '../pages/home/'
// loadData, 同步的action的派发执行的一个异步方法
// loadData来自各个模块
// takeEvery出发时机:各功能模块的组件派发一个action(SAGA_LOAD_DATA)。可以认为这是一个事件的监听
function* sagas() {
yield takeEvery('SAGA_LOAD_DATA', cookbookSagas.loadData)
yield takeEvery('SAGA_LOAD_LIST_DATA', cookbookSagas.loadlistData)
yield takeEvery('SAGA_LOAD_DETAIL_DATA', cookbookSagas.loaddetaillist)
yield takeEvery('SAGA_LOAD_PRODUCT_DATA', cookbookSagas.loadproductdata)
yield takeEvery('SAGA_LOAD_PRODUCTList_DATA', cookbookSagas.loadproductlistdata)
}
export default sagas