redux 是JavaScript 状态容器
总的来说:
就是应用中的所有 state 都以一个对象树的形式存储在一个单一的 store 中。唯一改变 state 的办法就是触发 action (一个描述发生什么的对象)。为了描述 action 如何改变 state 树,就需要编写 reducers(纯函数)!!!
简单应用如下:
// reducer 的形式为 (ostate , action) => nstate
即每个action如何把老状态 ostate 转变成为新状态 nstate!!
function reducer1(ostate , action){
switch(action type){
case 'INCREMENT' : return state+1;
case 'DECREMENT' : return state-1; }
}
// store 来存放应用的状态,API 是 {subscribe 订阅 , dispatch 派发, setState 获得}
-
创建 store ,调用方法 createSrote(reducer)
- let store = createStore(reducer1); -
手动订阅 , store.subscribe(callback)
- store.subscribe(()=> console.log(store.getState())) -
改变state ,需要手动派发
dispatch 一个 action 对象- store.dispatch({ type : 'INCREMENT'})