zchfeng / Front-End-note

1 stars 0 forks source link

React-Redux #2

Open zchfeng opened 2 years ago

zchfeng commented 2 years ago

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。可以理解为全局数据状态管理工具,用来做组件通信等。

React-Redux 是 Redux 的官方 React 绑定库。它能够使你的 React 组件从 Redux store 中读取数据,并且向 store 分发 actions 以更新数据

1、React-Redux将所有组件分成两大类:UI组件和容器组件。UI组件负责UI的呈现,容器组件负责管理数据和逻辑。

2、React-Redux 规定,所有的 UI 组件都由用户提供,容器组件则是由 React-Redux 自动生成。也就是说,用户负责视觉层,状态管理则是全部交给它。

3、connect():connect方法接受两个参数:mapStateToProps和mapDispatchToProps.他们定义了UI组件的业务逻辑。mapStateToProps负责输入逻辑,即将state映射到组件的参数props。mapDispatchToProps负责输入逻辑,即将用户对UI组件的操作映射成Action.

4、mapStateToProps():mapStateToProps是一个函数,它接受一个state作为参数,返回一个对象。mapStateToProps会订阅Store,每当state更新时,就会自动执行,重新计算UI组件的参数,从而触发UI组件的重新渲染

5、mapDispatchToProps():mapDispatchToProps是connect函数的第二个参数,用来建立 UI 组件的参数到store.dispatch方法的映射。也就是说,它定义了哪些用户的操作应该当作 Action,传给 Store。它可以是一个函数,也可以是一个对象。

6、Provider组件:connect方法生成容器组件以后,需要让容器组件拿到state对象,才能生成 UI 组件的参数。

Redux 入门教程(三):React-Redux 的用法