redux总结

import { createStore,combineReducers  } from 'redux'

//reducer  (state, action) => newState 
var reducer = function (state = {}, action) {
    switch (action.type) {
        case 'SET_NAME':
            return {
                ...state,
                message: action.name
            }
        default:
            return state;
    }
}

//combineReducers
var reducer = combineReducers({
    user: userReducer,
    items: itemsReducer
})
var userReducer = function (state = {}, action) {
    switch (action.type) {
        // etc.
        default:
            return state;
    }
}

var itemsReducer = function (state = [], action) {
    switch (action.type) {
        // etc.
        default:
            return state;
    }
}

//createStore(reducer, [preloadedState], enhancer)
var store= createStore(reducer)

//action
//ͬ同步
var action= function (name) {
    return {
        type: 'SET_NAME',
        name: name
    }
}

store.dispatch(action('bob')) 

//异步 applyMiddleware(...middlewares) 其实就是action返回一个函数
//({ getState, dispatch }) => next => action
//redux-thunk
export const initList = (data) => {
          type: INIT_LIST,
          data
}

export const fetchPosts = () => {
     return (dispatch) => {
         axios.get('url').then((res) => {
	const data = res.data;
	const action  = initList (data);
	dispatch(action);
         })
     }
}	

componentDidMount(){
    this.props.fetchPosts();
  }

// 变化监听器 subscribe(listener)
store.subscribe(() =>
  console.log(store.getState())
);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值