- Redux概述 Redux是一个用于JavaSciprt状态容器,提供可与预测化的状态管理,只有2kb
2.Redux三大核心 1.单一数据源头 2.State是只读的 3.使用纯函数来执行修改
-
State
- DomainDate:服务器返回的
- UIState:当前组件的
- APP State: 全局的
-
Action:本质是一个JS对象,必须包含一个type属性,只是描述了有事情要发生,并没有描述如何去更新state
-
Reducer: 本质是函数,响应发送过来的action,函数接收两个参数,一个是初始化的state,第二个是发送过来的action
-
Store: 就是把action与reducer联系到一起的对象,可以通过createStore来构建store对象
action{
type: 'ADD',
info: []
}
rootReducr = (state, action) => {
switch(action.type){
case 'ADD':
return {count: state.count + 1}
default:
return state
}
}
React-redux
Provider 组件、包裹在根组件最外层,使所有的字组件都可以拿到State,接收store作为props,然后通过context往下传,这样react中任何组件都可以通过context获取到store
connect 方法 Provider内部组件如果想要使用到state中的数据,就必须要connect进行一层包裹。 connet(要接收数据的函数, 要发送action的函数)(放入要加强的组件)
mapDispatchToprops是将action作为props注入component
const mapDispatchToProps = (dispatch) => {
return {
sendAction: () => {
//利用dispatch发送一个action
//传递action对象需要一个type属性
dispatch({
type: 'add_action'
})
}
}
}
const mapStateToProps = (state) => {
return state;
}