React 之 主要的内置 Hook(十)

embedded/2024/9/23 6:27:07/

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

1. useState

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

useState使用代码栗子:

javascript">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使用代码栗子:

javascript">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使用代码栗子:

javascript">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.ppmy.cn/embedded/34137.html

相关文章

网络工程师必学知识:SSH登录抓包分析报文交互过程

网络工程师必学知识:SSH登录抓包分析报文交互过程 1.概述:2.SSH传输层协议:3.SSH用户认证协议:4.SSH连接协议:5.抓包看看:6.总结:1.概述: SSH(Secure Shell ,安全外壳协议),就是在不安全的协议外层再加一层安全外壳。比如说telnet+SSH=stelnet。 SSH由三个组件构成:…

2023蓝桥杯学习与刷题建议

前两天天给你们组了队&#xff0c;经过两天发现各位都有这样的问题&#xff1a; 不愿意交流。小组不会规划刷题计划。可能是因为没有人带头和具体刷题计划&#xff0c;所以都处于迷茫&#xff0c;不交流、不刷题。还有可能是大家都不认识&#xff0c;都比较羞涩。同时也有我个…

Python vs MATLAB:选择深度学习的首选编程语言

Python vs MATLAB&#xff1a;选择深度学习的首选编程语言 在深度学习领域&#xff0c;编程语言的选择对于初学者的学习路径和未来的职业发展至关重要。目前&#xff0c;Python和MATLAB都是进行科学计算和数据分析的流行工具&#xff0c;但它们在深度学习社区中的应用和受欢迎…

展开说说:Android实现多线程解析

上一篇分析了开启多线程处理耗时任务的一些方法&#xff0c;但是就Android开发而言很多时候并不会直接使用Thread和Runnable,而是用AsyncTask、IntentService或者HandlerThread来实现在主线程开启新的子线程进行耗时任务并且等任务结束还能回到主线程更新UI。下面具体分析一下&…

TCP(TCP客户端、服务器如何通信)

一、TCP介绍 TCP的特点&#xff1a; 面向连接的协议&#xff1a;TCP是一种可靠的、面向连接的协议&#xff0c;在通信之前需要建立连接&#xff0c;以确保数据的可靠传输。这意味着在传输数据之前&#xff0c;发送方和接收方之间需要建立一条可靠的连接通道。流式协议&#x…

【DPU系列之】如何通过带外口登录到DPU上的ARM服务器?(Bluefield2举例)

文章目录 1. 背景说明2. 详细操作步骤2.1 目标拓扑结构2.2 连接DPU带外口网线&#xff0c;并获取IP地址2.3 ssh登录到DPU 3. 进一步看看系统的一些信息3.1 CPU信息&#xff1a;8核A723.2 内存信息 16GB3.3 查看ibdev设备 3.4 使用小工具pcie2netdev查看信息3.5 查看PCIe设备信息…

使用 docker-compose 编排 lnmp(dockerfile) 完成 wordpress

一、使用 docker-compose 编排 lnmp(dockerfile) 完成 wordpress 环境准备 ##修改主机名 hostnamectl set-hostname lyh bash [rootlyh ~]###关闭防火墙及核心防护 systemctl stop firewalld ##关闭核心防护 setenforce 0 ##关闭核心防护##安装Docker-20…

前端之深拷贝

前提&#xff1a; 就是在实际开发中&#xff0c;我有一个编辑的弹窗&#xff0c;可以查看和编辑&#xff0c;因为弹窗里面是一个步骤条&#xff0c;点击下一步就要向对应的接口发送请求&#xff0c;考虑到就比如我点击下一步&#xff0c;此次表箱信息其实不需要修改&#xff0…