前言
相信很多人都在使用redux作为前端状态管理库进去项目开发,但仍然停留在“知道怎么用,但仍然不知道其核心原理”的阶段,接下来带大家分析一下redux和react-redux两个库的核心思想和API
redux
1.为什么要使用redux?
随着互联网的高速发展,我们的应用变得越来越复杂,进行导致我们的组件之间的关系也变得日趋复杂,往往需要将状态父组件 -> 子组件 -> 子子组件 -> 又或者只是简单的 父组件与子组件之间的props传递也会导致我们的数据流变得难以维护,因为二次开发者不在熟悉项目的情况下无法第一时间确定数据来源是由谁发起的。使用redux之后,所有的状态都来自于store中的state,并且store通过react-redux中的Provider组件可以传递到Provider组件下的所有组件,也就是说store中的state对于Provider下的组件来说就是全局的。
2.redux的核心原理是什么?
1.将应用的状态统一放到state中,由store来管理state。2.reducer的作用是返回一个新的state去更新store中对用的state。3.按redux的原则,UI层每一次状态的改变都应通过action去触发,action传入对应的reducer 中,reducer返回一个新的state更新store中存放的state,这样就完成了一次状态的更新4.subscribe是为store订阅监听函数,这些订阅后的监听函数是在每一次dipatch发起后依次执行5.可以添加中间件对提交的dispatch进行重写
3.redux的api有哪些?
1.createStore 创建仓库,接受reducer作为参数2.bindActionCreator 绑定store.dispatch和action 的关系3.combineReducers 合并多个reducers4.applyMiddleware 洋葱模型的中间件,介于dispatch和action之间,重写dispatch5.compose 整合多个中间件