redux是一个第三者状态管理架构
成员:
- 仓库(store)
- 收货员(reducer)
- 库管(getState,subscribe)
成员间关系图
使用目录:
使用步骤:
1、npm install -S redux
2、项目中创建store文件夹
3、store中创建index.js引入redux的createStore方法,结合reducer创建仓库
4、store中创建reducer.js 返回一个纯函数
5、store中创建actionTypes.js用来统一管理action类型
6、store中创建actionCreator.js用来统一创建action对象
7、对应组件中引入store 利用store.getState()获取仓库对应数据,利用store.dispatch(action)提交对仓库数据的修改,利用store.subscribe(fn)检测仓库数据更新。
文件内容:
store/index.js
import { createStore } from 'redux';
import reducer from './reducer';
const store = createStore(reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());
export default store;
store/reducer.js
export default (state = defaultState,action)=>{
//根据action返回新的state(注意的能直接修改state)
}
store/actionTypes.js
export const CHANGE_INPUT_VALUE = "change_input_value";
store/actionCreator.js
import {
CHANGE_INPUT_VALUE
} from "./actionTypes";
export const valueChangeAction = (value)=>{
return {
type:CHANGE_INPUT_VALUE,
value
}
}
组件中应用redux相关代码
constructor(props){
super(props);
//初始化组件state为store
this.state = store.getState();
//监控redux仓库数据变更
store.subscribe(this.storeChange);
}
//发送某个类型的action,申请改变仓库数据
store.dispatch(valueChangeAction(e.target.value));
网友评论