逆战班----react-redux的学习记录!

React-Redux

react-radux就是将所有组件分成两大类:
UI 组件(presentational component)和容器组件(container component),以便于更好的优化和管理代码。

UI组件

我的理解是,它就是单纯的对页面的渲染,不负责逻辑的运行,无状态,并且通过父级的props拿到数据state

容器组件

它用来写业务逻辑各方面的数据管理,不负责进行对页面的渲染

在react-redux中容器组件是react-redux自动生成的,而使用者只需要编写UI组件即可

connect()方法

connect(mapStateToProps, mapDispatchToProps, mergeProps, options = {}) 

它的作用可以理解为是讲react组件与redux进行连接的
connect方法接受两个参数:mapStateToProps和mapDispatchToProps。它们定义了 UI 组件的业务逻辑。
mapStateToProps负责输入逻辑,将store中的state映射到 UI 组件的参数(props)。
mapDispatchToProps负责输出逻辑,将用户对 UI 组件的操作映射成 Action。
connect是如何实现的呢?
他通过Provider所传递的store,然后获取数据state,在通过一个构造函数将拿到的state返回成一个对象的属性,以便于容器组件的读取,并且可以再store数据更新后,重新获取数据。

Provider

它是react-redux 提供的一个 React 组件。用来接收store中的state,并且作为props通过context对象传递给子组件。
用法:
在根组件外层包裹,如下代码

import store from "./store"
import {Provider} from "react-redux"
ReactDOM.render(
    <Provider store={store}>
        <App />
    </Provider>, document.getElementById('root'));

这样就可以使整个项目的组件成为Provider 的子组件,并通过props获取数据。
纯属个人理解。有误请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值