React中的react-redux

本文详细介绍了如何在React应用中集成Redux,实现状态管理和自动渲染。通过创建reducer、store,以及使用Provider和connect方法,展示了组件如何与store中的状态和操作进行交互。
摘要由CSDN通过智能技术生成

1.作用

在redux的基础上实现state数据改变时自动渲染

2. 几个概念

  1. Provider组件:自动的将store中的state与组件进行关联
  2. 映射方法:这里需要两个映射方法,分别将store的state和dispatch映射到组件中
  3. Connent方法:将组件和store中的数据与方法进行连接

3.安装

 cnpm i react-redux --seve

4.基本使用

  1. 导入react-redux
import Redux,{createStore} from 'redux'
//需要导入redux来创建store
import {Provider,connect} from 'react-redux'
  1. 创建reducer
var reducer=function(state={num:0},action){
    switch(action.type){
        case 'add':
            state.num++
            break
        case 'reduce':
            state.num--
            break
        default:
            break
    }
    return {...state}
}
  1. 创建store
var store=createStore(reducer)
  1. 创建映射函数
//映射函数
//映射state中的数据
function mapStateToProps(state){
    return{
    //返回一个对象,里面放想要获取的数据
        value:state.num
    }
}
//映射dispatch
function mapDispatchToProps(dispatch){
    return{
        addFunction:()=>{dispatch({type:"add"})},
        reduceFunction:()=>{dispatch({type:"reduce"})}
    }
}
  1. 创建一个组件
class Counter extends React.Component{
    render(){
        //绑定store中的state
        var value=this.props.value
        //绑定store中的dispatch
        var addClick=this.props.addFunction
        var reduceClick=this.props.reduceFunction
        return (
        <div>
            <h3>计算数据:{value}</h3>
            <button onClick={addClick}>+1</button>
            <button onClick={reduceClick}>-1</button>
        </div>
        )
    }
}
  1. 使用connect将上面的映射函数和组件连接成一个新组建
var App=connect(
//这里写两个映射函数
    mapStateToProps,
    mapDispatchToProps
)(Counter)
//这里写组件名称
  1. 将组件渲染到页面
ReactDOM.render(
    <Provider store={store}>
        {/* 将我们创建的store进行绑定 */}
        <App></App>
    </Provider>
    ,document.getElementById('app')
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员徐小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值