返回顶部
首页 > 资讯 > 前端开发 > JavaScript >ReactuseContext与useReducer函数组件使用
  • 166
分享到

ReactuseContext与useReducer函数组件使用

ReactuseContextReactuseReducer 2023-02-06 12:02:22 166人浏览 独家记忆
摘要

目录useContext介绍使用useReducer介绍使用(简单示例实现计算器)将useContext与useReducer整合useContext 介绍 与class中写法对比减

useContext

介绍

与class中写法对比减少了代码量,省去了返回回调函数获取传来的值

使用


 import React, { useState, useRef, useContext } from 'react';
 const GlobalContext=React.createContext()//创建Context对象
function FilmItem(){
    const value=useContext(GlobalContext)
    console.log(value)//可以拿到传过来的value
        return(
                <div>
                    <span>{value.name}CSDN碰磕</span>
                </div>
             )
}
 export default function MyContext() {
    return (
        //供应商
        <GlobalContext.Provider value={{
            name:"碰磕",
            age:18
        }}>
        <div>
            Context方案
            <FilmItem></FilmItem>
        </div>
        </GlobalContext.Provider>
    );
 }

通过**useContext(GlobalContext)**就可以获取到传来值

useReducer

介绍

将多个state放到对象中,进行统一管理

使用(简单示例实现计算器)


 import React, {useReducer } from 'react';
 //处理函数
 const reducer=(pervState,action)=>{    //第一个参数是原数据,第二个参数是传来的数据
    let newarr={...pervState};//定义新对象拷贝
    switch(action.type){
        case "pengke-jian":
            newarr.count--
            return newarr        
        case "pengke-jia":
            newarr.count++
            return newarr
        default:
            return pervState   
    }
 }
 //外部的对象
 const intialState={
     count:0,
 }
 export default function MyReducer() {
    const [state,dispatch]=useReducer(reducer,intialState)
    return (
        <div>
            <button onClick={()=>{
                dispatch({
                    type:"pengke-jian"
                })
            }}>-</button>
            <span>{state.count}</span>
            <button onClick={()=>{
                dispatch({
                    type:"pengke-jia"
                })
            }}>+</button>
        </div>   
    )
 }

将useContext与useReducer整合

实现多个组件通过他们俩互相通信传值…


 import React, {useContext, useReducer } from 'react';
 const intialState={
     num1:"666",
     num2:"碰磕"
 }
 const reducer=(state,action)=>{
    let newarr={...state};
    switch(action.msg){
        case "change-num1":
            newarr.num1=action.value
            return newarr
        case "change-num2":
            newarr.num2=action.value
            return newarr
        default:
            return newarr
    }
 }
 const GlobalContext = React.createContext();
 export default function MyReducer2() {
    const [state,dispatch]=useReducer(reducer,intialState)
    return (
        <GlobalContext.Provider value={
            {
                state,dispatch
            }
        }>
        <div>
           <Children1 />
           <Children2 />
           <Children3 />
        </div>   
        </GlobalContext.Provider>
    )
 }
function Children1(){
    const {dispatch}=useContext(GlobalContext)//这里传值
    return <div style={{background:"red"}}>
        <button onClick={()=>{
            dispatch({
                msg:"change-num1",
                value:"被我修改了num1哈哈哈"
            })
        }}>改变值1</button>
        <button onClick={()=>{
            dispatch({
                msg:"change-num2",
                value:"被我修改了num2哈哈哈"
            })
        }}>改变值2</button>
    </div>
}
function Children2(){
    const {state}=useContext(GlobalContext)//拿到值
    return <div style={{background:"orange"}}>Children2---{state.num1}</div>
}
function Children3(){
    const {state}=useContext(GlobalContext)//拿到值
    return <div style={{background:"skyblue"}}>Children3---{state.num2}</div>
}

到此这篇关于React useContext与useReducer函数组件使用的文章就介绍到这了,更多相关React useContext与useReducer内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: ReactuseContext与useReducer函数组件使用

本文链接: https://lsjlt.com/news/194321.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ReactuseContext与useReducer函数组件使用
    目录useContext介绍使用useReducer介绍使用(简单示例实现计算器)将useContext与useReducer整合useContext 介绍 与class中写法对比减...
    99+
    2023-02-06
    React useContext React useReducer
  • React组件useReducer的讲解与使用
    目录useReducer的使用刨析useReducer参数useReducer的使用useReducer的使用 在React函数式组件中,我们可以通过useState()来创建sta...
    99+
    2023-05-16
    React组件useReducer useReducer使用 useReducer讲解
  • React函数组件与类组件怎么使用
    这篇“React函数组件与类组件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“React函数组件与类组件怎么使用”文...
    99+
    2023-06-30
  • React函数组件与类组件使用及优劣对比
    目录一、类组件的问题原因一、因为this带来的问题:问题描述问题解析原因二、类组件代码量比函数组件多:原因三、类组件过于臃肿不易拆分:二、函数组件的问题挂载阶段:getDervied...
    99+
    2024-04-02
  • Vue高级组件之函数式组件的使用场景与源码分析
    目录介绍使用场景源码分析总结介绍 Vue提供了一种可以让组件变为无状态、无实例的函数化组件。从原理上说,一般子组件都会经过实例化的过程,而单纯的函数组件并没有这个过程,它可以简单理...
    99+
    2024-04-02
  • 使用 TypeScript 开发 React 函数式组件
    目录前言如何使用 TypeScript 定义函数式组件1. 使用 React.FC2. 使用 JSX.Element3. 直接定义完整类型4. 使用 React.PropsWithC...
    99+
    2024-04-02
  • React函数式组件与类组件的不同你知道吗
    目录区别其他区别总结区别 区别函数组件类组件生命周期无有this无有state无有改变stateReact Hooks:useStatethis.setState()性能高(不用实例...
    99+
    2024-04-02
  • React函数式组件与类组件的不同点是什么
    本文小编为大家详细介绍“React函数式组件与类组件的不同点是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“React函数式组件与类组件的不同点是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别区别函...
    99+
    2023-06-29
  • Vue父组件调用子组件函数实现
    Vue父组件调用子组件的函数 父组件通过事件调用子组件的函数。例如父组件通过 点击事件 让子组件发请求。 文章中的项目已经通过脚手架去创建。 DEMO: Father.js ...
    99+
    2024-04-02
  • 使用 render 函数封装高扩展的组件
    需求: 后台管理中常常有如下布局的数据展示需求: 像表格又不是表格,像表单又不是表单,实际上样子像表格,呈现的数据是一个对象,和 form 的绑定的值一样,我将其称为表单式表格。 ...
    99+
    2024-04-02
  • C语言如何使用数组指针与函数指针
    这篇文章主要为大家展示了“C语言如何使用数组指针与函数指针”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言如何使用数组指针与函数指针”这篇文章吧。函数指针语法定义一个函数指针,并通过函数指针...
    99+
    2023-06-29
  • js中toString()函数与valueOf()函数使用与区别
    目录 一、前言二、toString() 函数三、valueOf()函数小结:四、特殊情况1、引用类型转换为 String 类型2、引用类型转换为 Number 类型&nbs...
    99+
    2024-04-02
  • React函数组件与类的区别有哪些
    目录一、函数式组件捕获了渲染所用的值二、闭包让类组件成为拥有特定props和state的渲染三、区分useState与useRef的使用首先我们要知道的是,项目性能能主要取决于代码的...
    99+
    2022-11-13
    React函数组件与类 React函数组件
  • Vue动态组件与异步组件怎么使用
    这篇“Vue动态组件与异步组件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue动态组件与异步组件怎么使用”文章吧...
    99+
    2023-07-05
  • C++ 虚函数与纯虚函数的使用与区别
    目录什么是虚函数:虚函数的注意事项:纯虚函数纯虚函数的注意事项:虚函数与纯虚函数区别什么是虚函数: 虚函数 是在基类中使用关键字 virtual 声明的函数,在C++ 语言中虚函数...
    99+
    2024-04-02
  • PHP中如何使用数组函数
    PHP中如何使用数组函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。array_multisort()对多个数组或多维数组进行排序可以用来一次对多个数组进行排序或者根据某一维...
    99+
    2023-06-17
  • php不使用函数数组排序
    PHP是一种用于Web开发的流行编程语言。其功能强大,拥有丰富的函数库,可以通过使用这些功能来完成各种任务。其中之一是对数组进行排序。PHP提供了几个函数,如sort(),asort()和ksort()等,可以对数组元素进行排序。但是,如果...
    99+
    2023-05-20
  • 如何使用 PHP 的数组函数?
    php 数组函数提供各种操作,包括添加、删除、搜索、合并和转换元素。它们简化了数据操作,提高了代码效率。例如,array_push() 添加元素到末尾,array_pop() 删除最后一...
    99+
    2024-04-20
    php 数组函数 键值对
  • JavaScript组合函数怎么使用
    这篇文章主要讲解了“JavaScript组合函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript组合函数怎么使用”吧!如果没有组合函数 compose,函数连续调用...
    99+
    2023-07-02
  • JavaScript伪数组和数组的使用与区别
    伪数组和数组 在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function)。 对象与数组的关系 在说区别之前,需要先提到另外一个知识,就是 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作