码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • react-redux使用


    目录

    react-redux和redux的关系?

    react-redux基本使用

    1.安装

    2.配置

    3.组件中使用


    react-redux和redux的关系?

    redux是react中进行状态管理的js库(不是react插件),一般是管理多个组件中共享数据状态,和vue中的vuex是一样的

    react-redux是redux官方react绑定库,能够使react组件从redux store中读取数据,并且向store分发actions以此来更新数据,说白了就是用于连接redux,它提供了connect和Provider两个Api

    react-redux基本使用

    1.安装

    npm i react-redux@7 --save

    尽量安装8.0以下的版本,8.0以上会报错,无法使用connect方法,提示hooks错误,provider也无法使用

    2.配置

    首先,我们在入口文件中配置react-redux的Provider方法,绑定store的redux对象数据

    1. //导入react-redux的provier的组件
    2. import { Provider } from "react-redux"
    3. //...other
    4. root.render(
    5. <Provider store={store}>
    6. <Routes />
    7. Provider>
    8. );

     注意:Provider的store参数必须写,如果不写,他会报错,他的原理跟我们使用context状态树中给provider传递的value值一样

    3.组件中使用

    在我们要使用的组件中尝试连接react-redux连接redux的数据

    使用步骤

    • 导入react-redux依赖包,引入connect方法
    • connect有两个函数参数,mapStateToProps和mapDispatchToProps
    • 把redux中state数据和action方法直接映射到组件props属性中去
    • 组件中可以直接通过props使用redux中的数据,调用方法直接调用redux中的action的数据
    • connect( mapStateToProps,mapDispatchToProps)(组件名)

    代码展示

    1. import React from 'react';
    2. import { connect } from 'react-redux';
    3. export default function ReactRedux(props) {
    4. console.log(props);
    5. return (
    6. <div>
    7. <h3>react-reduxh3>
    8. div>
    9. )
    10. }
    11. /把redux中的state数据映射到组件内部的变量
    12. const mapStateToProps=(state)=>{
    13. console.log(state);
    14. return {
    15. ...state
    16. }
    17. }
    18. //把redux中action的操作,可以映射成为组件的props的内部函数
    19. const mapDispathToProps=(dispatch)=>{
    20. return {
    21. plus:()=>dispatch({type:'PLUS'})
    22. }
    23. }
    24. //连接redux的操作的方法
    25. ReactRedux=connect(mapStateToProps,mapDispathToProps)(ReactRedux)

    connect方法执行完成以后绑定当前组件,复制完直接抛出即可

    我们打印props中的数据会发现我们store中数据会作为props中属性给我们打印出来

    这样,我们就可以使用props.属性/方法进行使用

     

  • 相关阅读:
    5G毫米波通信中的关键技术
    USB总线-Linux内核USB3.0主机控制器驱动框架分析(十二)
    【MATLAB源码-第68期】基于matlab的802.11b 11Mbps CCK调制解调误码率仿真。
    增强拉格朗日数字图像相关和跟踪研究(Matlab代码实现)
    Android Jetpack Compose之生命周期与副作用
    虚拟化与Docker基本概念与Docker的安装
    经典面试题第十二更---valueOf和toString
    Python 面向对象编程:类、对象、初始化和方法详解
    计算机毕业设计选题推荐-健身房管理系统-Java项目实战
    Linux多线程概念及实现
  • 原文地址:https://blog.csdn.net/qq_60976312/article/details/126273117
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号