当前位置: 首页 > news >正文

React的hooks---useReducer

useReducer 作为 useState 的代替方案,在某些场景下使用更加适合,例如 state 逻辑较复杂且包含多个子值,或者下一个 state 依赖于之前的 state 等。

使用 useReducer 还能给那些会触发深更新的组件做性能优化,因为父组件可以向自组件传递 dispatch 而不是回调函数

const [state, dispatch] = useReducer(reducer, initialArg, init);

使用:

import React, { useReducer } from 'react'const initialState = { count: 0 };function reducer(state, action) {switch (action.type) {case 'increment':return {count: state.count + 1};case 'decrement':return {count: state.count - 1};default:throw new Error();}
}export default function Counter() {const [state, dispatch] = useReducer(reducer, initialState);return (<><p>Count: {state.count}</p><button onClick={() => dispatch({type: 'decrement'})}>-</button><button onClick={() => dispatch({type: 'increment'})}>+</button></>);
}

 初始化 state:

useReducer 初始化 sate 的方式有两种

// 方式1
const [state, dispatch] = useReducer(reducer,{count: initialCount}
);// 方式2
function init(initialClunt) {return {count: initialClunt};
}const [state, dispatch] = useReducer(reducer, initialCount, init);

http://www.lryc.cn/news/100759.html

相关文章:

  • 自然语言处理从入门到应用——LangChain:模型(Models)-[文本嵌入模型Ⅱ]
  • Olap BI工具对比
  • 【iOS】Cocoapods的安装以及使用
  • OpenCvSharp (C# OpenCV) 二维码畸变矫正--基于透视变换(附源码)
  • 下级平台级联视频汇聚融合平台EasyCVR,层级显示不正确的原因排查
  • Android程序CPU使用大的异常分析
  • [数学建模] 0、关于数学建模的一点看法付费专栏食用说明
  • 2.oracle数据库自增主键
  • 算法通关村第二关——链表加法的问题解析
  • mapboxGL中楼层与室内地图的结合展示
  • 使用Anaconda3创建pytorch虚拟环境
  • QT 常用数据结构整理
  • Fiddler使用教程|渗透测试工具使用方法Fiddler
  • 网站密码忘记了怎么办?chrome浏览器,谷歌浏览器。
  • 23款奔驰GLS450加装原厂香氛负离子系统,清香宜人,久闻不腻
  • 流数据湖平台Apache Paimon(一)概述
  • 上传图片到腾讯云对象存储桶cos 【腾讯云对象存储桶】【cos】【el-upload】【vue3】【上传头像】【删除】
  • Hadoop教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Mac 快速生成树形项目结构目录
  • 使用fegin调用时,返回的值不能直接List这种,要使用对象包装一下
  • springboot整合myabtis+mysql
  • 博客摘录「 Redis( 缓存篇 ==> 超详细的缓存介绍与数据一致性解决方案 amp; 代码实现」
  • Chapter 8: Files | Python for Everybody 讲义笔记_En
  • 【C++ 进阶】第 1 章:[C 语言基础] C 语言概述与数据类型
  • 点击图片1.全屏阅览2.下载3.关闭 纯纯html css js
  • 科技项目验收测试:验证软件产品功能与性能的有效手段
  • Spring MVC学习笔记,包含mvc架构使用,过滤器、拦截器、执行流程等等
  • 【LeetCode 算法】Linked List Cycle 环形链表
  • RedHat7.9安装mysql8.0.32 ↝ 二进制方式
  • 数据库面试题题