Redux是React最常用的集中状态管理工具,类似于Vue中的vuex,可以独立于框架运行
作用:通过集中管理的方式管理应用的状态(全局都要用到的状态,例如用户信息)
三个核心的概念:state、action、reducer
state:是一个对象,用来存放我们管理的数据状态
action:一个对象,用来描述你想怎么改数据
reducer:一个函数,根据action的描述生成一个新的state
视图提交一个action对象,提交给了reducer函数,reducer函数 拿到action的类型做判断,返回一个新的state,最终通过store.getState().数据名,再反应到视图中
使用的步骤
1、定义一个reducer函数
//根据不同的action对象,返回不同的state
//state 管理数据的初始状态
//action 是一个对象,其中type 标记当前想要做什么样的修改
function reducer(state={count:0},action){
//数据不可变,必须基于原始的状态生成一个新的状态
if(action.type==='INCREMRNT'){
return {
count:state.count+1
}
}
return state //如果不满足上面的判断,则直接输出state初始数据
}
2、使用reducer函数生成store实例
const store = Redux.createStore(reducer)
3、通过store实例的subscribe 订阅数据变化,回调函数可以在每次state发生变化的时候自动执行
store.subscribe(()=>{
})
4、通过store实例的dispatch函数提交action更改状态
store.dispatch('INCREMRNT')