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 | dispatch(){ |
当我们使用了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"; |