reace(js) redux

下包npm install redux react-redux        

官网为什么 Redux Toolkit 是如今使用 Redux 的方式 | Redux 中文官网

先在src下创建一个store

store/index.js

import {createStore} from 'redux'

// action 代表dispatch传过来的内容 state原始数据
const reducer=(state,action)=>{
    // 深拷贝
    const NewState=JSON.parse(JSON.stringify(state))
    // action.type判断条件
    switch(action.type){
        // 发生改变 return返回新数据NewState
        case "CHANGE_LIST":
            NewState.userList.push(7)
            return NewState
            // 如果页面不发生改变 return返回原始数据state
        default:
                return state
    }
}

const initState={
    userList:[1,2,3,5]
}

const store=createStore(reducer,initState)

export default store;

在index页面中引入

 在页面中调用(快捷键rfcredux)

import React from 'react'
import { connect } from 'react-redux'

export const index = (props) => {
  // console.log(props, '7777')  (userList)
  return (
    <div>
      index
      {props.userList}
      <button onClick={props.changeList}>修改</button>
    </div>
  )
}

// 映射 state数据 去 当前组件的props
const mapStateToProps = (state) => {
  // state 获取到store页面中的initState(userList数据)
  // console.log(state)
  // 将userlist映射到state
  const { userList } = state
  return {
    userList
  }
}


// 映射 修改state数据的方法 去 当前组件的props
const mapDispatchToProps = (dispatch)=>{
  return{
      changeList(){
          dispatch({type:'CHANGE_LIST'})//大写
      }
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(index)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值