IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> React-redux高阶组件应用 -> 正文阅读

[JavaScript知识库]React-redux高阶组件应用

react-redux的使用必须依赖redux使用,所以在开始敲代码之前,要先下载好这两个依赖。

redux下载
npm install --save redux
react-redux下载
npm install --save react-redux 

react-redux使用方法

React-Redux 将所有组件分成两大类:UI 组件(presentational component)和容器组件(container component)

一、UI组件的含义

  • 只负责 UI 的呈现,不带有任何业务逻辑
  • 没有状态(即不使用this.state这个变量)
  • 所有数据都由参数(this.props)提供
  • 不使用任何 Redux 的 API

二、容器组件

  • 负责管理数据和业务逻辑,不负责 UI 的呈现
  • 带有内部状态
  • 使用 Redux 的 API

其中UI组件和容器组件各司其职,UI 组件负责 UI 的呈现,容器组件负责管理数据和逻辑。
在这里插入图片描述
React-Redux 规定,所有的 UI 组件都由用户提供,容器组件则是由 React-Redux 自动生成。也就是说,用户负责视觉层,状态管理则是全部交给它。

react-redux怎样使用(搭配计数器小案例实现)

一、在App组件中引入Provider,

import { Provider } from 'react-redux'

使用Provider标签将根组件包裹起来,注意添加store={引进来的redux仓库}

 return (
            <Provider store={store}>
                <div>
                    <CmdA></CmdA>
                    <CmdB></CmdB>
                </div>
            </Provider>

        )

这样一来,我们就可以子组件中用connect直接进行数据的操作了。

二、在每个子组件都中引入connect

import { connect } from 'react-redux'

react-redux是由发送方=》reducer函数处理=》接收方这个格式来完成的,
这个小型计数器案例是实现了一个点击按钮添加的功能,所以我们把按钮和显示的数据分成两个组件,显然,点击的按钮是发送方,而另一个接受数据的组件是接收方。

三、1、实现connect方法的代码

class CmdA extends Component {
     
     add=()=>{
         return ()=>{
             this.props.setAction()
         }
     }

    render() {
        return (
            <div>
                <button onClick={this.add()}>add</button>
            </div>
        )
    }
}
const mapdispatchToProps=(dispatch)=>{
    return {
        setAction:()=>{
            dispatch({
                type:'adds'
            })
        }
    }
}

export default connect(null,mapdispatchToProps)(CmdA)

直接抛出一个connect()(),第一个参数是接收或者发送的方法,第二个参数是接收或者发送的组件
在这里插入图片描述
const 发送的方法名,里面必须要return一个对象,所以最好在对象内写一个函数并将dispatch的方法封在内部,这样,在组件内部的add方法中直接调用this.props.setAction()就可以直接拿到调用到dispatch方法了。(connect内部抛出的所有东西在传到了组件内的props中)

三、2、reducer内部的代码
这里跟redux的代码基本一模一样。

const reducer = (state,action)=>{
    
    if(action.type === "adds"){
        return {
            a:state.a +1
        }
    }

    return state;
}

export default reducer

三、3、connect接收操作
发送方的数据被reducer处理后,会由接收方接收,具体代码是

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

class CmdB extends Component {
    render() {
        return (
            <div>
                {this.props.a}
            </div>
        )
    }
}

const mapStateToProps=(state)=>{
    return state;
}

export default connect(mapStateToProps,null)(CmdB)

react-redux具体可以由一张图解释
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:24:51  更:2021-08-01 14:26:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 13:33:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码