Redux 是什么

Redux is a predictable state container for JavaScript apps

Redux概念

store: 利用数据的存储核心
action: 利用数据的扭转的形容
reducer: 决定利用数据新状态的函数,接管利用之前的状态和一个 action 返回数据的新状态。
state: 状态
middleware: redux 提供中间件的形式,实现一些 流程的自定义管制,同时造成其插件体系。

流程

环境筹备

npx create-react-app cracd cra npm start

在 cra我的项目中装置redux

yarn add redux

redux整体感知

// reducerconst weight = (state = 160, action) => {    switch (action.type) {        case 'eat':            return state + 10        case 'hungry':            return state - 10        default:            return 160    }}const store = createStore(weight)console.log(store.getState())store.dispatch({ type: 'eat' })console.log('我吃了一些事物')console.log(store.getState())console.log('我饿了好几天')store.dispatch({ type: 'hungry' })console.log(store.getState())console.log('我又饿了好几天')store.dispatch({ type: 'hungry' })console.log(store.getState())

reducer 外面应用switch语句依据传入的类型,输入新的状态
把reducer 传入 createStore(weight)
通过 dispatch 传入不同的类型,扭转状态state。
store.dispatch({ type: 'hungry' })
通过 store.getState() 获取以后的状态

通过subscribe订阅,实现redux数据响应

const store = createStore(weight)const watch = () => {    const cur = store.getState()    console.log(`stark wang 当初体重为${cur}斤`)}store.subscribe(watch)// watch()store.dispatch({type:'eat'})store.dispatch({type:'eat'})store.dispatch({type:'eat'})store.dispatch({ type: 'hungry' })