React状态管理之redux

其实和vue对应的vuex都是差不多的东西,这里稍微提一下(安装Redux略过):

import { createStore, combineReducers, applyMiddleware } from 'redux'

function user(state = {name: 'redux'}, action) {
  switch (action.type) {
    case 'CHANGE_USER_NAME':
      return {
        ...state,
        name: action.name
      }
  }
  return state
}
function project(state = {name: 'min-react'}, action) {
  switch (action.type) {
    case 'CHANGE_NAME':
      return {
        ...state,
        name: action.name
      }
  }
  return state
}
var rootReducer = combineReducers({
  user,
  project
})
var store = createStore(rootReducer)

export default store;

上述是一个标准的store,并且有两个reducer。然后我们希望store在每个组件里都能访问,这个时候你可以:

①将store挂在到入口文件的路由上,但是这样的话要通过props来访问,组件层级高的话,很麻烦;

②官网提供了一个组件Provider,他用起来像这样:

③挂载到中间件上(本人自创)

这样,对于store的所有操作,我们都可以写在store类上,并且可以供组件类随意调用,并且数据共享。相对于官方提供的Provider组件来说,可扩展性大大提高。

猜你喜欢

转载自www.cnblogs.com/eco-just/p/10596851.html