我在“useState()”网站上读到了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);
};
});
// ...
}这两个例子都有相同的结果,但是哪一个更好--为什么呢?
发布于 2021-11-26 20:43:42
这在很大程度上取决于您使用计时器的目的,这一点并不清楚,因为您没有显示组件呈现的内容。
只有在真正需要的时候才能使用参考文献。在流程或性能问题的情况下),因为它不跟随"反应方式“。
https://stackoverflow.com/questions/56455887
复制相似问题