React-Redux的使用

React-Recdux将所有的组件分为两大类:UI组件(presentational component)和容器组件(container component)
**有时候UI组件也叫:**展示组件、木偶组件、傻瓜组件、纯组件
容器组件叫:智能组件

Provider

React-Redux提供 组件,能够让整个app访问到React store中的数据

在这里插入图片描述

UI组件有以下几个特征:

  • 只负责UI的展现,不带有任何的业务逻辑
  • 没有状态
  • 所有的数据都由参数(this.props)提供
  • 不使用任何的Redux的API

容器组件以下几个特征:

  • 负责管理数据和业务逻辑,不负责UI的展现
  • 带有内部的状态
  • 使用Redux的API

connect()

React-Redux提供connect()方法,用于从UI组件生成容器组件

import {connect} from "react-redux"
export default  connect()(TodoInfo)//生成容器组件

connect()(UI组件) ===>返回一个容器组件
connect()是一个HOC高阶组件,本质上是一个函数,可以接收一个组件,最终返回一个新的组件

export default connect(
  mapStateToProps,
  mapDispatchToProps
)(TodoInfo)

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

mapStateToProps

mapStateToProps是一个函数,这个函数参数是state,可以让UI组件通过this.props获取到redux的状态

const mapStateToProps = state => {
    return  state.todolist
}

export default  connect(mapStateToProps)(TodoInfo)

mapDispatchToProps

mapDispatchToProps是一个函数,这个函数参数是dispatch,可以让UI组件通过this.props获取到更改redux状态

//将所有的更改redux的状态的方法全都挂载到UI组件的属性上面去,并且内部会自动的将action派发给reducer
const mapDispatchToProps = actionCreators

export default connect(null,mapDispatchToProps)(TodoInput)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值