redux & react-redux结合使用 2024

redux & react-redux结合使用 2024

1.安装 redux react-redux

复制代码
yarn add redux && yarn add react-redux

2.编写reducer

js 复制代码
const initstate={count:0}
exports.reducer=(state=initstate,action)=>{
    switch (action.type){
        case "add_action":
            return {
                count: state.count+1
            }
        default:
            return state;
    }
}

3.编写store

js 复制代码
import {createStore} from "redux";
import {reducer} from '../reducer'
const store=createStore(reducer)
export default store

4.根组件引入provider

js 复制代码
import Home from "./pages/home";
import ComA from "./pages/ComA";
import ComB from "./pages/ComB";
import store from "./store";
import {Provider} from "react-redux";

function App() {
  return (
      <Provider store={store}>
          <div>
              <ComA/>
              <ComB/>
          </div>
      </Provider>
  );
}
export default App;

5.发送状态

js 复制代码
import React from "react";
import {connect} from "react-redux";
class ComA extends React.Component{
    handleClick=()=>{
        console.log(111)
        this.props.sendAction()
    }
    render() {
        return (
            <button onClick={this.handleClick}>+</button>
        )
    }
}
const mapDispatchToProps=(dispatch)=>{
    return {
        sendAction:()=>{
            dispatch({
                type:'add_action'
            })
        }
    }

}
export default connect(null,mapDispatchToProps)(ComA)

6.接收状态

js 复制代码
import React from "react";
import {connect} from "react-redux";
class ComB extends React.Component{
    render() {
        return (
            <button>{this.props.count}</button>
        )
    }
}
const mapStateToProps=state=>{
    return state
}
export default connect(mapStateToProps)(ComB)
相关推荐
程序员黑豆5 小时前
Java 注释详解:单行、多行与文档注释的完整指南
java·前端·ai编程
剪刀石头布啊6 小时前
antd中可编辑表格中巧用useWatch实现联动高性能效果,以及定制延伸学习
前端
油丶酸萝卜别吃6 小时前
前端转全栈学习路线
前端·学习
浮生望6 小时前
前端路由进阶:History API原理与手写HistoryRouter
前端
陆枫Larry7 小时前
JavaScript 中的竞态是什么,为啥会有竟态?
前端
上海安当技术9 小时前
半天接入:USBKey RESTful API + C 动态库,Web 和 C/S 两套集成路径实战
前端·后端·restful·集成·usbkey
DevUI团队9 小时前
从“即兴创作”到“规格先行”,华为云码道(CodeArts)代码智能体持续深耕企业级规范驱动开发能力
前端·人工智能·后端
weixin_4316004410 小时前
NestJS 入门(3):Guard 如何挡住未登录请求?
前端·后端·学习·nest.js
avi911110 小时前
[AI教做人]AI平台做2项目;一个3D模型展示,另一个框架多人
javascript·人工智能·ai·3d模型·3d引擎·顶点和法线
kyriewen11 小时前
我用Claude Code两天干完了团队两周的排期——周报发出去那一刻我就后悔了
前端·javascript·ai编程