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;