码农知识堂 - 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.属性/方法进行使用

     

  • 相关阅读:
    从哈希表到红黑树:探讨 epoll 是如何管理事件的?
    app地推拉新平台哪个比较好用?
    基于springboot停车位管理系统【附源码】开源项目
    【微服务】Sentinel 适配网关进行流量控制
    CAN2无法通信问题
    整合vue elementui springboot mybatisplus前后端分离的 简单增加功能 删改查未实现
    Aspose.Words使用教程之插入文档元素(三)
    java毕业设计中国民航酒店分销系统Mybatis+系统+数据库+调试部署
    OpenCV 资料
    javaEE基于springboot的小区社区文化活动报名系统jsp生活服务网站
  • 原文地址:https://blog.csdn.net/qq_60976312/article/details/126273117
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号