react中useReducer钩子函数的使用

news2024/11/20 20:24:51

1.代码展示

import { useReducer } from "react"

// 1.定义reducer函数,根据不同action返回不同状态
function reducer(state, action) {
    console.log(state, action);
    switch (action.type) {
        case "INC":
            return state + 1
            break;
        case "DEC":
            return state - 1
            break;
        case "SET":
            return action.data
            break;
        default:
            if(action.kanno==="SET"){
                return action.data
            }
            return state
            break;
    }
}

function UseReducer() {
    // 2.组件中调用useReducer钩子函数,该钩子函数有两个参数,第一个参数(必须)是自己定义的逻辑处理方法,第二个参数(非必须)是变量的初始值
    const [state, dispatch] = useReducer(reducer,0)
    return (
        <div>
            {/* 3.调用dispatch((type:"INC"))=>通知reducer产生一个新的状态 使用这个新状态更新UI */}
            <button onClick={() => dispatch({ type: "DEC",data:66 })}>-</button>
            {state}
            <button onClick={() => dispatch({ type: "INC",data:88 })}>+</button>
            <button onClick={() => dispatch({ kanno: "SET",data:100 })}>更新</button>
        </div>
    )
}

export default UseReducer

2.代码说明

自定义的reducer函数中的两个形参,第一个是变量,第二个是dispatch({ xxx: "xxx" })中传递过来的对象

3.效果展示

输出展示:console.log(state, action);

页面展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【黑科技】:Laravel 项目性能提升 20 倍

令人激动的黑科技&#xff1a;Laravel 项目性能提升 20 倍 这个项目能够在无需修改任何代码且无需第三方扩展的前提下&#xff0c;将你的 Laravel 项目性能提高 20 倍。它仅依赖于 PHP 原生的 pcntl、posix、fiber 和 sockets。 项目灵感 起因是看到官方发布的 PHP 8.1 更新…

CTF-NSSCTF[NISACTF 2022]

[NISACTF 2022]middlerce 考察&#xff1a;正则匹配回溯绕过 这里使用的是正则匹配的NIF匹配引擎,这个匹配引擎的原理是基于从后往前回溯的匹配机制 NIF匹配机制 当preg_match这个函数进行匹配时是匹配完后才根据匹配到与否来返回bool值 如果匹配到也要匹配完后才返回true,…

linux mysql 定时备份

1、创建备份文件夹 cd /homemkdir backup2、创建脚本文件 vim bkDatabaseName.sh加入以下内容&#xff08;/xp/server/mysql/bin/mysqldump是你的mysqldump备份命令&#xff0c;一般如果是正常安装的&#xff0c;可以直接用全局命令mysqldump&#xff0c;不用带前面的路径&am…

【前端 02】新浪新闻项目-初步使用CSS来排版

在今天的博文中&#xff0c;我们将围绕“新浪新闻”项目&#xff0c;深入探讨HTML和CSS在网页制作中的基础应用。通过具体实例&#xff0c;我们将学习如何设置图片、标题、超链接以及文本排版&#xff0c;同时了解CSS的引入方式和选择器优先级&#xff0c;以及视频和音频标签的…

19.延迟队列优化

问题 前面所讲的延迟队列有一个不足之处&#xff0c;比如现在有一个需求需要延迟半个小时的消息&#xff0c;那么就只有添加一个新的队列。那就意味着&#xff0c;每新增一个不同时间需求&#xff0c;就会新创建一个队列。 解决方案 应该讲消息的时间不要跟队列绑定&#xf…

介绍一款适合于程序员的手机浏览器

DT浏览器是一款适合于程序员的手机浏览器&#xff0c;主要功能有&#xff0c;资料分类收藏&#xff0c;图片资料转文字&#xff0c;智能问答&#xff0c;视频资料管理和播放&#xff0c;笔记本&#xff0c; DT浏览器使用教程之如何查空气质量&#xff0c; 在DT浏览器首页点空…

谷粒商城实战笔记-75-商品服务-API-品牌管理-品牌分类关联与级联更新

文章目录 一&#xff0c;引入Mybatis Plus分页插件二&#xff0c;品牌列表的模糊查询三&#xff0c;增加品牌测试数据四&#xff0c;开发后台品牌关联分类接口1&#xff0c;接口product/categorybrandrelation/catelog/list2&#xff0c;接口product/categorybrandrelation/sav…

第03课 Scratch入门篇: 键盘控制小猫

键盘控制小猫 入门篇适合新手&#xff0c;如您已经学过&#xff0c;可以忽略本节课&#xff01; 1、故事背景&#xff1a; 悠闲的小猫在舞台中散步&#xff0c;左左右右&#xff0c;上上下下… 2、实现原理&#xff1a; 让我们一起分析下&#xff0c;如何通过程序来…

Java 字符串 HashCode 的奇怪情况

过去 1.5 年以来&#xff0c;我一直在使用 Java 编程。最近&#xff0c;我在尝试对 Java 数据结构进行性能分析。为了亲自体验一下&#xff0c;我决定玩一下我最喜欢的数据结构&#xff0c;即 HashSet。HashSet 提供 O(1) 查找和插入时间。我测量并比较了在 HashSet 中查找具有…

kafka高性能的底层原理分析

目录 1.磁盘顺序写 2.零拷贝 3.数据压缩 4.消息批量处理 5.pageCache 6.稀疏索引 总结 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。那么他是如何做到高性能的呢&#xff0c;本篇文章从宏观上分析一下&#xff…

论文阅读——Design of Environmental backscatter tag antenna for 5G Internet of things

文章目录 摘要一、背景二、系统模型三、天线设计A. 指标B. 天线结构描述C. 天线结构优化D. 天线结构确定 四、仿真结果总结 论文来源&#xff1a;https://ieeexplore.ieee.org/document/9379395 摘要 文章针对传统设备识别在电力物联网场景中存在的可靠性低和读取距离不足的问…

2024年陕西省职业院校技能大赛高职信息安全管理与评估样题

2024年陕西省职业院校技能大赛高职信息安全管理与评估样题 模块一竞赛项目试题 根据信息安全管理与评估技术文件要求&#xff0c;模块一为网络平台搭建与网络安全防护。本文件为信息安全管理与评估项目竞赛-模块一试题。 模块一 平台搭建与安全设备防护 竞赛任务 网络平台搭建…

[网鼎杯 2020 朱雀组]Nmap(详细解读版)

这道题考察nmap的一些用法,以及escapeshellarg和escapeshellcmd两个函数的绕过&#xff0c;可以看这里PHP escapeshellarg()escapeshellcmd() 之殇 (seebug.org) 两种解题方法&#xff1a; 第一种通过nmap的-iL参数读取扫描一个文件到指定文件中第二种是利用nmap的参数写入we…

CAN总线的错误检测机制

文章目录 错误类型1、位错误-Bit Check Error2、填充错误-Stuff Error3、格式错误-Form Error4、ACK错误-ACK Error 和 CRC错误-CRC Error5、错误示例 错误处理1、主动错误 - error active2、被动错误 - error passive3、总线关闭 - bus off4、错误计数值的变动条件 参考 错误类…

信创终端操作系统上vmware的命令行操作

原文链接&#xff1a;信创终端操作系统上vmware的命令行操作 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在信创终端操作系统上使用命令行操作VMware的文章。通过命令行管理VMware虚拟机可以提高效率&#xff0c;特别是在需要批量操作或自动化管理时。本文将…

【PyCharm】PyCharm 2024.1 的最新变化-代码导航与重构

目录 代码导航与重构 改进的代码导航功能 高级重构工具 代码导航与重构 改进的代码导航功能 符号搜索和文件搜索增强&#xff1a;改进后的符号搜索功能能够更快速地定位到特定的类、函数、变量等&#xff0c;而增强的文件搜索则让用户能够轻松找到所需的文件或目录。现在&a…

【IJER】: 二苄基甲苯加氢及不同 Pt 负载量的 Pt/Al对全氢二苄基甲苯制氢的催化性能

摘要&#xff1a; 研究了二苄基甲苯加氢和全氢二苄基甲苯(H18-DBT)脱氢的特性。氢化实验使用Raney-Ni进行。结果表明&#xff0c;170℃、7MPa是最佳反应条件&#xff0c;在30小时内氢气容量达到6.2wt%。 H18-DBT 脱氢的最佳温度为 290C。此外&#xff0c;在不同Pt金属负载量&am…

【Redis系列】RedisTemplate的使用与注意事项

目录 一.什么是RedisTemplate 二.如何使用RedisTemplate RedisTemplate的API 序列化 三.StringRedisTemplate 一.什么是RedisTemplate RedisTemplate 是一个工具类&#xff0c;由 Spring 官方提供的方便操作 Redis 数据库的一个工具类&#xff0c;来源于 org.springframe…

day3 测试基础知识

1. 你认为性能测试的目的是什么&#xff1f;做好性能测试的工作的关键是什么&#xff1f; 性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能&#xff0c;性能测试常常需要和强度测试结合起来&#xff0c;并常常要求同时进行软件和硬件的检测。 性能测试主要的关…

写在礼拜天

这两天巴黎奥运会&#xff0c;办的如火如荼&#xff0c;各个国家都有拿到金牌的人…… 前几天&#xff0c;俞敏洪正式发文&#xff0c;说董宇辉从东方甄选离职&#xff0c;明确已经出来单干…… 前段时间的高考成绩已经揭晓&#xff0c;有人金榜题名&#xff0c;有人名落孙山…