Hooks 是 React 16.8 引入的一种新特性,它可以让我们在函数组件中使用状态和其他 React 特性。Hooks 提供了一系列的 API,例如 useState、useEffect 等,用于管理组件的状态和生命周期。具体可参考react hooks。
ahooks 是阿里巴巴开源的一个 React Hooks 库,它是对 React Hooks 的扩展和封装,提供了更多的实用的 Hooks。ahooks 中包含了一些常用的 Hooks,例如 useRequest、useLocalStorage 等,它们可以帮助我们更方便地处理请求、存储和其他功能。
因此,Hooks 是 React 自带的特性,而 ahooks 则是第三方库,它们可以一起使用,但是 ahooks 提供了更多的功能和便利性。
import { useRequest } from 'ahooks';
const fetchData = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve('数据请求成功!');
}, 2000);
});
};
const MyComponent = () => {
const { data, loading, error } = useRequest(fetchData);
if (loading) {
return <div>Loading...</div>;
}
if (error) {
return <div>Error: {error}</div>;
}
return <div>Data: {data}</div>;
};
import { useLocalStorage } from 'ahooks';
const MyComponent = () => {
const [value, setValue] = useLocalStorage('myKey', 'initialValue');
return (
<div>
<input
type="text"
value={value}
onChange={(e) => setValue(e.target.value)}
/>
<p>Value: {value}</p>
</div>
);
};
import { useInterval } from 'ahooks';
const MyComponent = () => {
const [count, setCount] = useState(0);
useInterval(() => {
setCount(count + 1);
}, 1000);
return <div>Count: {count}</div>;
};
import { useDebounce } from 'ahooks';
const MyComponent = () => {
const [value, setValue] = useState('');
const debouncedValue = useDebounce(value, 500);
return (
<div>
<input
type="text"
value={value}
onChange={(e) => setValue(e.target.value)}
/>
<p>Debounced Value: {debouncedValue}</p>
</div>
);
};
这些只是 ahooks 提供的一小部分功能,还有很多其他的 Hooks 可以在 ahooks 中使用。