React 之 主要的内置 Hook(十)

React 重要的主要内置 Hook 包括以下几个:

1. useState

用于在函数组件中添加状态。它返回一个状态变量和一个更新该状态的函数。这使得函数组件能够像类组件一样具有状态。

useState使用代码栗子:

import React, { useState } from 'react';  function Example() {  const [count, setCount] = useState(0);  return (  <div>  <p>You clicked {count} times</p>  <button onClick={() => setCount(count + 1)}>Click me</button>  </div>  );  
}

2. useEffect

用于在函数组件中执行副作用操作,比如数据获取、订阅、手动修改 DOM 等。它的工作方式与类组件中的
componentDidMount、componentDidUpdate 和 componentWillUnmount 生命周期方法类似。

useEffect使用代码栗子:

import React, { useState, useEffect } from 'react';  function Example() {  const [count, setCount] = useState(0);  useEffect(() => {  // 类似于componentDidMount和componentDidUpdate:  console.log(`You clicked ${count} times`);  // 返回一个清理函数,类似于componentWillUnmount:  return () => {  console.log('Component will unmount');  };  }, [count]); // 依赖项数组,当依赖项发生变化时,useEffect会重新执行  return (  <div>  <p>You clicked {count} times</p>  <button onClick={() => setCount(count + 1)}>Click me</button>  </div>  );  
}

3. useContext

它使得你可以无需明确地逐层通过 props 来传递数据,而是在组件之间的任何位置直接访问 React 的 Context
值。useContext 接收一个 React Context 对象(React.createContext 的返回值)并返回该
Context 的当前值。

useContext使用代码栗子:

import React, { createContext, useContext, useState } from 'react';  // 创建一个 Context 对象  
const ThemeContext = createContext('light');  // 使用 ThemeContext 的组件  
function ThemedButton() {  // 使用 useContext 来获取 ThemeContext 的值  const theme = useContext(ThemeContext);  return (  <button style={{ backgroundColor: theme }}>  I am styled by theme context!  </button>  );  
}  // 提供 ThemeContext 值的组件  
function App() {  // 声明一个状态变量来作为主题  const [theme, setTheme] = useState('light');  // 一个处理函数,用于切换主题  const toggleTheme = () => {  setTheme(theme === 'light' ? 'dark' : 'light');  };  // 使用 ThemeContext.Provider 来包裹组件,并提供主题值  return (  <div>  <button onClick={toggleTheme}>Toggle Theme</button>  <ThemeContext.Provider value={theme}>  <ThemedButton />  </ThemeContext.Provider>  </div>  );  
}  export default App;

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

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

相关文章

力扣:64. 最小路径和

64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,1],[4,2,1]] 输…

【C语言】解决不同场景字符串问题:巧妙运用字符串函数

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、字符函数1.1 字符分类函数1.1.1 islower1.1.2 isupper 1.…

手动管理MySQL 8.0中的Undo表空间

MySQL 8.0为数据库管理员提供了更多的灵活性&#xff0c;特别是在管理Undo表空间方面。这项功能对于优化数据库性能、管理磁盘空间及确保数据恢复过程的高效性非常重要。本文详细介绍了如何在MySQL 8.0中手动管理Undo表空间&#xff0c;包括创建、配置、使用和维护这些表空间的…

JavaScript正则表达式

JavaScript正则表达式 创建正则表达式 使用构造函数 var 变量 new RegExp("正则表达式"); // 注意&#xff0c;参数是字符串var 变量 new RegExp("正则表达式", "匹配模式"); // 注意&#xff0c;两个参数都是字符串RegExp的意思是 Regular …

哪个品牌的骨传导耳机好用?精选五大高性能热门骨传导耳机款式推荐!

我作为一名热衷于音乐的数码博主&#xff0c;在选购产品前也习惯于先浏览各种榜单。最近&#xff0c;我发现关于骨传导耳机的讨论热度极高&#xff0c;有人认为骨传导耳机是非常值得入手的新型蓝牙耳机&#xff0c;也有人认为骨传导耳机只是智商税的产品。经过深入调查后&#…

jetbra.zip教程 激活JetBrains全家桶Idea、pyCharm…亲测有效

本教程基于Windows系统 1、下载jetbra.zip 1.1、地址&#xff1a;https://3.jetbra.in/ 1.2、点击随便一个可用站点 1.3、找到左上角蓝色部分&#xff0c;点击下载 1.4、注意软件卡片上右上角支持的版本 1.5、不要关闭网页&#xff0c;留着&#xff0c;要等会用到 2、下载对应…

器件配置比特流或 PDI 设置-7 系列比特流设置

7 系列比特流设置 下表所示 7 系列器件的器件配置设置可搭配 set_property <Setting> <Value> [current_design] Vivado 工具 Tcl 命令一起使用。 注释 &#xff1a; BPI 的比特流设置对于 Spartan -7 器件无效。

自定义数据上的YOLOv9分割训练

原文地址&#xff1a;yolov9-segmentation-training-on-custom-data 2024 年 4 月 16 日 在飞速发展的计算机视觉领域&#xff0c;物体分割在从图像中提取有意义的信息方面起着举足轻重的作用。在众多分割算法中&#xff0c;YOLOv9 是一种稳健且适应性强的解决方案&#xff0…

TinyML之micro_speech语音识别----Feature generation failed解决方案

具体的开发过程网上都有&#xff0c;就不赘述了。 在colab上训练模型&#xff0c;花了将近2小时&#xff0c;得到模型文件后&#xff0c;CV到micro_speech工程里的micro_features_model.cpp里&#xff0c;结果运行报错&#xff1a; Feature generation failed Requested feat…

c++ BSTree二叉搜索树(附原码)

目录 一、概念 二、基本操作 1、插入 2、中序遍历 3、删除 4、查找 5、总结删除 三、应用场景 四、原码 一、概念 左子树比根小&#xff0c;右子树比根大 意义&#xff1a;最多查找高度次数 不需要排序&#xff0c;就达到了二分查找的效率 同时还弥补了单纯数组的插入…

自适应调节Q和R的自适应UKF(AUKF_QR)的MATLAB程序

简述 基于三维模型的UKF&#xff0c;设计一段时间的输入状态误差较大&#xff0c;此时通过对比预测的状态值与观测值的残差&#xff0c;在相应的情况下自适应调节系统协方差Q和观测协方差R&#xff0c;构成自适应无迹卡尔曼滤波&#xff08;AUKF&#xff09;&#xff0c;与传统…

【分布式 | 第五篇】何为分布式?分布式锁?和微服务关系?

文章目录 5.何为分布式&#xff1f;分布式锁&#xff1f;和微服务关系&#xff1f;5.1何为分布式&#xff1f;5.1.1定义5.1.2例子5.1.3优缺点&#xff08;1&#xff09;优点&#xff08;2&#xff09;缺点 5.2何为分布式锁&#xff1f;5.2.1定义5.2.2必要性 5.3区分分布式和微服…

TinyVue 3.15.0 正式发布,推出全新的 Charts 图表组件底座,功能更强、图表更丰富!

你好&#xff0c;我是 Kagol。 我们非常高兴地宣布&#xff0c;2024年4月8日&#xff0c;TinyVue 发布了 v3.15.0 &#x1f389;。 TinyVue 每次大版本发布&#xff0c;都会给大家带来一些实用的新特性&#xff0c;上一个版本我们推出了业界组件库没有的 MindMap 思维导图组件…

zookeeper启动 FAILED TO START

注意&#xff1a;启动zookeeper时&#xff0c;需要使用zkServer.sh start命令将所有主机启动后&#xff0c;再查看状态 如果&#xff0c;启动一台主机&#xff0c;查看当前主机状态&#xff0c;则会报错 如果出错&#xff0c;进入到$ZOOKEEPER_HOME/logs&#xff0c;查看日志 …

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展&#xff0c;建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求&#xff0c;设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…

Nginx rewrite项目练习

Nginx rewrite练习 1、访问ip/xcz&#xff0c;返回400状态码&#xff0c;要求用rewrite匹配/xcz a、访问/xcz返回400 b、访问/hello时正常访问xcz.html页面server {listen 192.168.99.137:80;server_name 192.168.99.137;charset utf-8;root /var/www/html;location / {root …

【论文阅读:Towards Efficient Data Valuation Based on the Shapley Value】

基于Shapley值的高校数据价值评估 主要贡献 提出了一系列用于近似计算Shapley值的高效算法。设计了一个算法&#xff0c;通过实现不同模型评估之间的适当信息共享来实现这一目标,该算法具有可证明的误差保证来近似N个数据点的SV&#xff0c;其模型评估数量为 O ( N l o g ( N…

EPICS DataBase详解

1、分布式EPICS设置 1&#xff09; 操作界面&#xff1a;包括shell命令行方式(caget, caput, camonitor等)和图形界面方式(medm, edm, css等)。 2&#xff09;输入输出控制器(IOC) 2、IOC 1) 数据库&#xff1a;数据流&#xff0c;基本上周期运行 2)sequencer&#xff1a;基…

2024年全国保密宣传教育月的主题是()。A.贯彻落实保密法。你我都是护密人B.国家利益高于一切,保密责任重于泰山C.筑牢保密防线,维护国家安全

2024年全国保密宣传教育月的主题是()。点击查看答案 A.贯彻落实保密法。你我都是护密人B.国家利益高于一切&#xff0c;保密责任重于泰山 C.筑牢保密防线&#xff0c;维护国家安全D.共筑保密防线&#xff0c;公民人人有责 坚持不懈开展保密宣传教育&#xff0c;是保密工作实…

插入法(直接/二分/希尔)

//稳定耗时&#xff1a; 双向冒泡&#xff0c;可指定最大最小值个数MaxMinNum<nsizeof(Arr)/sizeof(Arr[0]), void BiBubbleSort(int Arr[],int n&#xff0c;int MaxMinNum){int left0,rightn-1;int i;bool notDone true;int temp;int minPos;while(left<right&&am…