redux核心概念

  • state 状态
    • 把应用中的数据存到一个对象树种进行统一的管理
    • 尽量去利用纯函数去修改state
    • state是只读的
  • store 仓库
    • 通过createStone去创建
    • 利用getState去除state
    • 通过dispatch 去调用reducer的方法,进而改变state的状态
    • 通过subscribe 监听或取消监听state变化
  • reducer 纯函数
    • 相同的输入永远返回相同的输出
    • 不修改函数的输入值
    • 不依赖外部环境状态
    • 无任何副作用
  • action 动作

    • type 属性 : 表示要进行操作的动作类型,增删改查
    • payload属性 : 操作 state 的同时传入的数据

      redux的三大原则

  • 单一数据源

  • State是只读的
  • 使用纯函数来执行修改


  1. // 一些常用的操作
  2. combineReducers() --> 将各种reducer合并

react-redux

  1. // 从 react-redux 引入Provider之后需要
  2. import {Provider} from "react-redux";
  3. <Provider store={store}>
  4. <App />
  5. </Provider>

react项目中的 redux 绑定库

  • connect() — 高阶函数:传入数据,返回一个函数
  • useDispatch 获取 dispatch =》是同步的
  • useStore 获取 store
  • useSelector 获取 state

    redux-thunk(异步操作中间件)

  • 参数是对象,直接调用 reducer 修改我们的 state

  • 参数是函数,调用该函数,并且把 dispatch 和 getState 传递我们的函数,可以在函数中,进行异步操作