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)
相关推荐
小茴香3534 分钟前
Vue 脚手架(Vue CLI)
前端·javascript·vue.js
午安~婉9 分钟前
ESLint
前端·eslint·检查
“抚琴”的人10 分钟前
C#中获取程序执行时间
服务器·前端·c#
掘金一周20 分钟前
Flex 布局下文字省略不生效?原因其实很简单| 掘金一周 10.16
前端
你的电影很有趣22 分钟前
lesson72:Node.js 安全实战:Crypto-Js 4.2.0 与 Express 加密体系构建指南
javascript·安全·node.js
Stringzhua25 分钟前
Vue的Axios介绍【9】
前端·javascript·vue.js
渣哥30 分钟前
从 READ_UNCOMMITTED 到 SERIALIZABLE:Spring 事务隔离级别全解析
javascript·后端·面试
云霄IT34 分钟前
绕过Frida检测反调试的一些办法
android·javascript
摸着石头过河的石头42 分钟前
JavaScript 垃圾收集:内存管理的艺术
前端·javascript
前端小崽子43 分钟前
🔥 踩坑实录:Fabric 在 Intel Iris Xe 显卡上 CPU 飙升 100%
前端