- 安装redux
yarn redux
- 创建redux文件夹(专门用来存放redux相关文件)
- 在store.js文件中引入
createStore
,组件reducer,并导出
该文件专门用于暴露一个store对象,整个应用只有一个store对象
// store.js
//引入createStore,专门用于创建redux中最为核心的store对象
import {createStore} from 'redux'
//引入为Count组件服务的reducer
import countReducer from './count_reducer'
//导出store
export default createStore(countReducer)
- 存取状态
reducer
文件
1.该文件是用于创建一个为Count组件服务的reducer,reducer的本质就是一个函数
2.reducer函数会接到两个参数,分别为:之前的状态(preState),动作对象(action)
// count_reducer.js
const initState = 0 //初始化状态
export default function countReducer(preState=initState,action){
// console.log(preState);
//从action对象中获取:type、data
const {type,data} = action
//根据type决定如何加工数据
switch (type) {
case 'increment': //如果是加
return preState + data
case 'decrement': //若果是减
return preState - data
default:
return preState
}
}
- 在组件中调用
redux
的API
获取状态
<h1>当前求和为:{store.getState()}</h1>
发送给store执行对状态的操作
store.dispatch({type:'increment',data:value*1})
检测redux中状态的变化,只要变化,就调用render
componentDidMount(){
store.subscribe(()=>{
this.setState({})
})
}