最佳答案
我在“ 钩子常见问题解答”上读到了 React useState()
和 useRef()
,我对一些似乎同时具有 useRef 和 useState 解决方案的用例感到困惑,我不确定哪种方式是正确的。
摘自“钩子常见问题解答”关于 useRef ():
”useRef () Hook 不仅仅适用于 DOM 参考。“ ref”对象是一个泛型容器,其当前属性是可变的,可以保存任何值,类似于类的实例属性
UseRef ():
function Timer() {
const intervalRef = useRef();
useEffect(() => {
const id = setInterval(() => {
// ...
});
intervalRef.current = id;
return () => {
clearInterval(intervalRef.current);
};
});
// ...
}
UseState ():
function Timer() {
const [intervalId, setIntervalId] = useState(null);
useEffect(() => {
const id = setInterval(() => {
// ...
});
setIntervalId(id);
return () => {
clearInterval(intervalId);
};
});
// ...
}
两个例子都有相同的结果,但是哪一个更好——为什么?