React是视图层框架,Redux是用来管理数据状态和 UI 状态的 JavaScript 应用工具。
随着 JavaScript 单页应用开发日趋复杂,所需要管理的 state 也日趋增多,Redux就是用来降低管理难度的。
在React中逐渐之间通信的数据流是单向的,顶层组件可以通过 props 属性向下层组件传递数据,而下层组件不能向上层组件传递数据,兄弟组件之间同样不能。当项目越来越大的时候,管理数据的事件或回调函数越来越多,也就越来越不好管理。
Redux 提供了一个叫 store 的统一仓储库,组件通过 dispatch 将 state 直接传入 store,不用通过其他的组件。并且组件通过 subscribe 从 store 获取到 state 的改变。使用 Redux,所有的组件都可以层 store 中获取到所需的 state ,他们也能从 store 获取到 state 的改变。
总结:
单纯的 Redux 只是一个状态机,是没有 UI 呈现的,react-redux 作用是将 Redux 的状态机和 React 的 UI 呈现绑定在一起,当你 dispatch action 改变 state 的时候,会自动更新页面