什么是Redux
它一个面向JavaScript应用的可预测状态的容器。协助管理我们的前端应用的状态。
与 React 搭配
首先说明一点,react项目不一定要搭配Redux。
在React中,深层次的组件的属性需要有父组件向子组件传递,当父子组件之间的隔代很多时,属性需要一层一层地传递,中间的部分组件可能是不需要使用这些多余的属性的,那么这样的做法就会很鸡肋。
redux可以帮助我们管理这些共享的状态。它让我们能够以有条理的存储数据,而且让我们能够在应用的任何位置快速获取已存储的数据,而不需要通过状态提取到父组件一层一层地向下传递。
三大原则
- 单一数据源
整个应用的状态数据存储在一个 Object 类型的 store 中,因为只有单一的数据源,调试变得非常容易,同时撤销/恢复
这种操作也方便实现了。 - state只读
在应用中不允许直接修改状态数据,要想修改state数据只能通过action,描述出修改的意图将 action 交给 store 集中处理。 - 使用纯函数来执行修改
在应用中使用 Reducer 接收先前的 state 和 action,并返回新的 state。