REDUX

1、redux是一个全局状态管理工具。他可以个任何一个框架进行结合使用,不一定是react。但是react主要是针对视图层操作的,用来展示内容的,和redux结合使用会更方便一些。

2、单向数据流:数据是单向流动的。我们在view中通过dispatch派发一个action来改变数据,数据改变之后视图重新渲染

3、Redux中:
(1)state:是用来存储数据的
(2)action:是用来组织数据的,每一个action都必须包含一个type属性,表示数据以什么 形式进行改变。action是一个简单的对象。如果我们要改变数据只能通过 dispatch派发一个action实现
(3)reducer:用来改变state,所有的数据改变都需要在reducer中进行。是一个function, 接收两个参数
参数一 state的初始值
参数二 action
需要有一个返回值表示新的state数据

4、createStore用来创建redux
combineReducers可以把多个reducer合并成一个
Import {createStore,combineReducers,compose,applyMiddleware} from “redux”;
5、dispatch

1
2
3
4
dispatch(){
type:
payload:{}
}

当我们使用了redux-thunk插件之后
 插件会判断当前我们dispatch派发的内容
 如果是一个对象  直接进行dispatch
    如果不是,name会把dispatch当做参数传递到function颞部执行
    执行完成之后再在function中进行派发
  redux-thunk的代码只有几十行
dispatch派发一个action
 执行dispatch之后所有的reducer都会执行一遍
 根据当前的action中的type属性判断是如何改变state数据

6、connect的作用是吧redux中的数据映射到组件的属性上

1
import { connect } from "react-redux";

connect是一个高阶组件的应用形式
  通过connect方法可以把redux中的state映射到组件的属性上
  同时还会吧dispatch方法映射到属性上

1
export default connect(mapStateToProps)(App);

7、解决异步action的问题

1
import thunk from "redux-thunk";
更新于

请我喝[茶]~( ̄▽ ̄)~*

CQ 微信支付

微信支付

CQ 支付宝

支付宝

CQ 贝宝

贝宝