react hooks介绍以及常用hooks列举
React Hooks 是 React 16.8 的新增特性,它可以让你在不编写类的情况下使用状态(state)以及其他的 React 功能。
常用的 Hooks 包括:
- 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>
);
}
- useEffect:用于处理副作用,类似于类组件中的
componentDidMount
和componentDidUpdate
。
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
// 类似于 componentDidMount 和 componentDidUpdate:
useEffect(() => {
// 更新文档的标题
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click me</button>
</div>
);
}
- useContext:提供了一种传递那些可以在组件树中任意位置访问的值的方式。
import React, { useContext } from 'react';
import { ThemeContext } from './ThemeContext';
function Button() {
const theme = useContext(ThemeContext);
return (
<button style={{ background: theme.background, color: theme.foreground }}>
I am styled by theme context!
</button>
);
}
- useReducer:用于管理复杂的状态,类似于
useState
,但对于任何状态的复杂逻辑有更好的控制。
import React, { useReducer } from 'react';
function Example() {
const [state, dispatch] = useReducer(reducer, initialState);
return (
<div>
<p>Count: {state.count}</p>
<button onClick={() => dispatch({ type: 'increment' })}>Increment</button>
<button onClick={() => dispatch({ type: 'decrement' })}>Decrement</button>
</div>
);
}
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();
}
}
- useCallback:用于记住函数的引用,避免不必要的重复渲染。
import
评论已关闭