2
import { createStore } from 'redux'

const initState = {
    count:0
}

const ADD_TODO = {
    type:'ADD',
    payload:'加法操作'
}

const LESS_TODO = {
    type:'LESS',
    payload:'减法操作'
}

const counter = (state = initState,action) => {
    switch(action.type){
        case 'ADD':
            return {
                count:state.count+1
            }
        case 'LESS':
            return {
                count:state.count-1
            }
        default:
            return state;
    }
}

let  store = createStore(counter);

let unlistener = store.subscribe(()=>{
    console.log(store.getState())
})

store.dispatch(ADD_TODO);
store.dispatch(ADD_TODO);
store.dispatch(ADD_TODO);
store.dispatch(LESS_TODO);

unlistener()

当前应用的所有状态都保存在store的state树中,这是一个集合
想要修改state中的数据,必须要发送action,可以在任何时候调用dispatch发送action
action会作为第二个参数触发创建store时传入的Reducer函数,第一个参数是当前的state树
Reducer函数会根据action中的信息,返回一个新的state树存入store
这使得程序的运行在界面出现之前就变得可以预测:
UI组件使用初始的state树,当界面需要改变时,触发action,改变store中state树的数据,然后重新渲染显示


chenqiao
295 声望13 粉丝